Qt For Android 如何获取手机屏幕大小

来源:互联网 发布:解压缩包的软件 编辑:程序博客网 时间:2024/04/25 09:07

获取方法

首先看一段程序代码:

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_OBJECTpublic:    explicit Dialog(QWidget *parent = 0);    ~Dialog();private:    Ui::Dialog *ui;};

将上述代码改为

class Dialog : public QDialog{    Q_OBJECTpublic:    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,这样就可以实现,程序窗口自适应屏幕大小了,但是这样有个弊端:窗体中所添加的所有空间,都必须随着窗体的变化,而发生变化,这样可能导致程序开发变的更繁琐和复杂了。

0 0
原创粉丝点击