使Qt窗口自适应屏幕大小

15

我有一个Qt应用程序,需要加载到不同屏幕尺寸的移动设备上。我该如何使它自适应移动设备的屏幕大小?


4
为了澄清,您不是想要fullScreen,而是希望窗口化并匹配屏幕大小? - Troubadour
3个回答

17

如果您想让应用程序的主窗口在启动时占据整个屏幕,请使用QWidget::showMaximized,例如:

int main(int argc, char **argv)
{
    QApplication app(argc, argv);
    MyMainWidget widget;
    widget.showMaximized();
    return app.exec();
}
请注意,showMaximized是一个便利函数,其内部调用了 Andrew 提到的 QWidget::setWindowState 函数。
void QWidget::showMaximized()
{
    // ...
    setWindowState((windowState() & ~(Qt::WindowMinimized | Qt::WindowFullScreen))
                   | Qt::WindowMaximized);
    show();
}

假设我的应用程序主窗口大小为240x320像素。然后我需要将其加载到屏幕大小为160X160的移动设备上。它会使用showMaximized自动调整大小以适应可用的屏幕大小吗?谢谢... - Owen
我尝试了,但它没有适应我的手机屏幕? - user7179690

6
如果您真的需要几何图形,您可以使用 QDesktopWidget 获取有关显示器的信息,包括其几何形状。
但是,如果您只想使窗口正确大小,您应该使用 QWidget::setWindowState,就像 Andrew 建议的那样。

3

void QWidget::setWindowState ( Qt::WindowStates windowState )

将窗口状态设置为windowState。窗口状态是Qt::WindowState的一个OR组合:Qt::WindowMinimized,Qt::WindowMaximized,Qt::WindowFullScreen和Qt::WindowActive。

来自QWidget的文档。希望这能帮到你。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接