【问题标题】:Qt: Set size of QMainWindowQt:设置 QMainWindow 的大小
【发布时间】:2023-04-02 02:18:01
【问题描述】:

我是 Qt 新手,所以我想知道是否有办法将 QMainWindow 的大小设置为(例如)用户桌面的 70%。
我尝试了拉伸因子,但它没有不行。 QWidget::setFixedSize 有效,但我认为只有一个像素数。

【问题讨论】:

  • 看这个链接:stackoverflow.com/questions/6496327/…>你可以计算出其中的70%。
  • amir 继续发帖作为答案。
  • 好的,谢谢,我会试试这个:)
  • 好吧,我用我的代码编辑了我的问题;)
  • @dado2: 你能写一个你自己问题的答案而不是修改你的问题吗?这将尊重 StackOverflow 鼓励的 Q/A 风格。

标签: qt size qmainwindow


【解决方案1】:

在你的 QMainWindow 构造函数的某个地方,这样做:

resize(QDesktopWidget().availableGeometry(this).size() * 0.7);

这会将窗口大小调整为可用屏幕空间的 70%。

【讨论】:

  • 这应该是正确的答案,谢谢!我仍然想知道为什么这需要在 QT 中如此神秘,而不是简单地能够做类似resize(640, 480) 之类的事情。
  • @Timo:当然,您也可以这样做。但这个想法是根据可用的屏幕分辨率自动调整窗口的大小。
【解决方案2】:

感谢 Amir eas。问题已经解决了。这是它的代码:

#include <QDesktopWidget>
#include <QMainWindow>
...
QDesktopWidget dw;
MainWindow w;
...
int x=dw.width()*0.7;
int y=dw.height()*0.7;
w.setFixedSize(x,y);

【讨论】:

  • 这对于多显示器设置来说效果不佳:\ 有什么想法吗?
  • @Wilhelmsen:您可以使用QDesktiopWidget::primaryScreen(),就像在这个问题的答案中一样:stackoverflow.com/questions/17893328/…
  • 请注意,作为副作用,用户将无法使用此方法调整窗口大小。请参阅下面的答案以获得更好的方法。
【解决方案3】:

您可以使用QDesktopWidget 中的availableGeometry(QWidget*) 方法,这将为您提供此小部件当前所在屏幕的几何形状。
例如:

QRect screenSize = desktop.availableGeometry(this);
this->setFixedSize(QSize(screenSize.width * 0.7f, screenSize.height * 0.7f));

this 是 MainWindow 指针。 这将在使用多个屏幕时起作用。

【讨论】:

    猜你喜欢
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-18
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    相关资源
    最近更新 更多