您的位置:首页 > 移动开发 > Android开发

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

2015-05-11 09:43 190 查看

获取方法

首先看一段程序代码:

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,这样就可以实现,程序窗口自适应屏幕大小了,但是这样有个弊端:窗体中所添加的所有空间,都必须随着窗体的变化,而发生变化,这样可能导致程序开发变的更繁琐和复杂了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: