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 に答える