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

你可能感兴趣的:(QT)