0
QDesktopWidget * screen = QApplication::desktop();
QRect size = screen->availableGeometry(this);

文件说,

可用的内容将是 screenGeometry() 的子区域,具体取决于平台决定可用的内容(例如,不包括 Mac OS X 上的 Dock 和菜单栏,或 Windows 上的任务栏)。

我想知道的是如何在 Linux 上获得可用的屏幕几何图形(没有面板)?我在 Linux 上尝试了上面的代码,但它返回物理屏幕大小。

4

2 回答 2

0

这个问题意味着调用QApplication::desktop()->size()将为您提供不带面板的 Linux 桌面的大小。

// called from inside the MainWindow constructor
QDesktopWidget* dt(QApplication::desktop());
this->resize(dt->size()); 

此代码正确调整主窗口的大小以填充带有 Qt 4.8 的 Ubuntu 10.04 上顶部和底部栏之间的空间。我看不出 Qt3 和 Qt 4.8 之间的文档有任何区别,这表明这些函数的行为已经改变。

于 2012-04-05T08:07:15.027 回答
0

大多数情况下都availableGeometry()有效。我正在使用虚拟屏幕。有时它不能正常工作。

于 2012-05-17T11:41:30.633 回答