Qt For Android 如何获取手机屏幕大小
获取方法
首先看一段程序代码:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Dialog w;
w.show();
return a.exec();
}
a为应用程序,w为对话框;我们获取屏幕大小,需要从变量a这里获取;
QScreen *iScreen = a.primaryScreen();
QSize rScreenSize = iScreen->size();
虽然把屏幕大小获得了,但是我们改变UI大小的程序在Dialog w里面;这时候我们需要重载Dialog,将获得尺寸传入Dialog里面,首先在头文件dialog.h中修改如下代码
class Dialog : public QDialog
{
Q_OBJECT
public:
explicit Dialog(QWidget *parent = 0);
~Dialog();
private:
Ui::Dialog *ui;
};
将上述代码改为
class Dialog : public QDialog
{
Q_OBJECT
public:
explicit Dialog(int iWidth,int iHeight,QWidget *parent = 0);
~Dialog();
private:
Ui::Dialog *ui;
int width;
int height;
};
同时,修改dialog.cpp为
Dialog::Dialog(int iWidth,int iHeight,QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
widht = iWidth;
height = iHeight-50;
ui->setupUi(this);
this->setFixedSize(width,height);
//......
}
OK,这样就可以实现,程序窗口自适应屏幕大小了,但是这样有个弊端:窗体中所添加的所有空间,都必须随着窗体的变化,而发生变化,这样可能导致程序开发变的更繁琐和复杂了。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。