我在MAC上的Qt Widget中开发了iPhone应用程序,但是屏幕尺寸和所有元素都有问题,我为iPhone 4s设置了所有元素和屏幕。当这个应用程序在iPhone 5上运行时,所有东西看起来都很小。所以我想设置屏幕尺寸和所有元素,以便在所有类型的手机和屏幕上看起来更好。
在widget应用程序中,我无法直接在.qml文件中添加,我只能通过拖放进行更改。
先谢谢你。
答案 0 :(得分:0)
您可以通过QDesktopWidget查询动态设置屏幕尺寸。
QRect r = QApplication::desktop()->screenGeometry();
int h = r.height();
int w = r.width();
The Qt layout system提供了一种简单而强大的方法,可以在窗口小部件中自动排列子窗口小部件,以确保它们充分利用可用空间。
请参阅下面的示例代码,该代码采用全屏幕并将该空间拆分为文本标签和按钮。您可以调整窗口大小,直到小部件为止。最小尺寸限制。
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include <QVBoxLayout>
#include <QPushButton>
#include <QLabel>
#include <QApplication>
#include <QDesktopWidget>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
{
QWidget *central_widget = new QWidget;
QVBoxLayout *layout = new QVBoxLayout(central_widget);
QPushButton *button1 = new QPushButton("Button1");
layout->addWidget(button1);
QLabel *label1 = new QLabel();
label1->setText("Label1");
label1->setAlignment(Qt::AlignCenter);
layout->addWidget(label1);
setCentralWidget(central_widget);
QRect r = QApplication::desktop()->screenGeometry();
int h = r.height();
int w = r.width();
button1->setMinimumHeight(h/4);
button1->setMaximumHeight(h/2);
button1->setMinimumWidth(w/2);
button1->setMaximumWidth(w);
label1->setMinimumHeight(h/4);
label1->setMaximumHeight(h/2);
label1->setMinimumWidth(w/2);
label1->setMaximumWidth(w);
resize(w, h);
}
MainWindow::~MainWindow()
{
}