QDesktopWidget * screen = QApplication::desktop();
QRect size = screen->availableGeometry(this);
文件说,
可用的内容将根据平台决定可用的内容(例如,不包括Mac OS X上的Dock和Menubar或Windows上的任务栏)的screenGeometry()的子矩形。
我想知道的是如何在 Linux 上获得可用的屏幕几何形状(没有面板)?我在 Linux 上尝试了上面的代码,但它返回物理屏幕尺寸。
这个问题意味着调用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之间的文档中看不到任何差异,这表明这些功能的行为已经改变。
在大多数情况下,availableGeometry()
有效。我正在使用虚拟屏幕。有时它无法正常工作。