QApplication

QWidgetベースのアプリケーションで必要とするいくつかの機能を持ったQGuiApplicationを専門化しています

Qtを使用したどんなGUIアプリケーションでは、あるときアプリケーションがいくつのウィンドウを持っていようともただひとつのQApplicationオブジェクトがあります
QWidgetベースでないQtアプリケーションでは、QtWidgetsライブラリに依存しないQGuiApplicationをかわりに使用します

いくつかのGUIアプリケーションは特別なバッチモードを提供します
つまり手動の介入なしにタスクを実行するコマンドライン引数を提供します
そうしたGUIでないモードでは、不必要なGUIに必要であるリソースの不必要な初期化を避けるために空のQCoreApplicationのインスタンスを生成するだけで十分なこともよくあります
次の例はどのようにアプリケーションインスタンスの適切な型を動的に生成するかの例を示します

QApplicationオブジェクトにはグローバルなqAppポインタを返すinstance()関数を通してアクセスできます

QApplicationの機能
palette()、font()及びdoubleClickInterval()などのユーザーのデスクトップ設定を持つアプリケーションを初期化します
ユーザーが例えばコントロールパネルなどを通してデスクトップを全体的に変更した場合こういった設定を追跡します

イベントハンドリングを実行します
基礎になるウィンドウシステムからのイベントを受け取り、関連するウィジェットにそれらのイベントを伝達します
sendEvent()及びpostEvent()を使用することによって、自作したイベントをウィジェットに伝達できます

共通コマンドライン引数を解析し、それに応じて内部状態を設定します

アプリケーションの見た目を定義します
これらは QStyle オブジェクトでカプセル化されています
設定はsetStyle()で実行時に変更することができます

色をどのように割り当てるかを指定します
setColorSpec()を参照してください

translate()を通してユーザーが視認できる文字列のローカリゼーションを提供します

desktop()及びclipboard()のような魅力的なオブジェクトを提供します

アプリケーションウィジェットに関する情報を持っています
あるウィジェットがどの位置にあるかをwidgetAt()を使用して訪ねたり、topLevelWidgets()及びcloseAllWindows()などのリストを取得できます

アプリケーションのマウスカーソルの扱いを管理します
setOverrideCursor()を参照してください

QApplicationオブジェクトは多くの初期化を行うため、ユーザーインターフェースに関連した他のオブジェクトが生成される前に、インスタンスを生成する必要があります
QApplicationはまた共通のコマンドラインライン引数を扱います
そういうわけで、引数の解釈または修正をアプリケーション自身で行う前に生成するのが賢明です

QDesktopWidget * QApplication::desktop() [static]
デスクトップウィジェット(ルートウィンドウとも呼ばれる)を取得します
デスクトップがマルチスクリーンで構成される場合、結果が正しくならない場合があります
QDesktopWidgetはデスクトップ上の便利なジオメトリを取得できる様々な関数があります

QDesktopWidget はマルチディスプレイ環境のスクリーン情報へのアクセスを提供します

一つ以上のグラフィックカード及びモニターを持つシステムは利用可能な物理的なスクリーン空間をマルチデスクトップまたは大きな仮想デスクトップとして管理することができます
このクラスは合計サイズ、スクリーンの数、各スクリーンのジオメトリ及び分割されたデスクトップまたは単一の仮想デスクトップのどちらで設定するかなどのユーザーのデスクトップに関する情報を提供します
Qtによって提供されたウィジェットはツールチップス、メニュー及びダイアログボックスをその親またはアプリケーションウィジェットのある正しいスクリーンに配置するためにこのクラスを使用します
アプリケーションはウィジェットの位置を保存したり、特定のスクリーンに子ウィジェット及びダイアログを配置するために使用できる情報を得るためにこのクラスを使用できます

デスクトップウィジェットを取得する
QDesktopWidgetオブジェクトのインスタンスを取得するためにQApplication::desktop() を使用します

このウィジェットのscreenGeometry()関数は利用可能なスクリーンのジオメトリに関する情報を提供します
利用可能なスクリーンの数はscreenCountで取得できます
またスクリーンが追加または削除された場合、screenCountChanged()シグナルが送出されます
特定のポイントまたはウィジェットが配置されたスクリーン番号はscreenNumber()で取得できます

特定のスクリーンの次元を取得するためにscreenGeometry()関数を呼び出します
あるデスクトップ環境ではスクリーンのすべてがアプリケーションで使用することができるとは限りません
例えばアプリケーションドックまたはメニューバーはいくらかの空間を必要とするかもしれません
アプリケーションの利用可能なエリアを取得するには availableGeometry()関数を使用できます

QDesktopWidget は QWidgetプロパティを継承しています
width()及びheight()はデスクトップの大きさを指定できます
しかし、マルチスクリーンを持つデスクトップでは、デスクトップの大きさはすべてのスクリーンを結合した大きさになります
なのでwidth()及びheight()は複数のスクリーンのあるスクリーンに配置されたウィジェットの大きさを計算するために使用するべきではありません

利用可能なスクリーンを単一なスクリーン、つまり大きな仮想デスクトップとして使用するように設定された環境において、virtualDesktopプロパティはtrueに設定されます
こうした場合、ウィジェットの大きさは常にすべてのスクリーンを囲む長方形の大きさになります

アプリケーションにとって、メインウィジェットが常駐しているスクリーンがメインスクリーンとなります
これはprimaryScreenプロパティに情報があります
アプリケーションの背景で開かれているすべてのウィンドウは主スクリーンの境界内に制限されるべきです
例えばダイアログボックスが異なるスクリーンにポップアップされたり、2つのスクリーンに分割されたら不便でしょう

int primaryScreen() const
ウィジェットにとってのメインスクリーンのインデックスを取得します

int screenCount() const
現在利用可能なスクリーンの数を取得します

void screenCountChanged(int newCount)
利用可能なスクリーン数が変更された場合、このシグナルが送出されます

bool isVirtualDesktop() const
システムが利用可能な複数のデスクトップを一つの仮想デスクトップとして管理している場合はtrue、そうでない場合はfalseを返します。

仮想デスクトップでは、screen()は常に同じウィジェットを返します
仮想デスクトップの大きさはデスクトップウィジェットの大きさと同じになります

const QRect QDesktopWidget::availableGeometry(int screen = -1) const
インデックス screen のスクリーンの利用可能な範囲を取得します
利用可能なものはscreenGeometry()で取得できる範囲の一部です(例えば、タスクバーなどを除いた範囲)
screenの値が-1の場合はデフォルトスクリーンを意味します

const QRect QDesktopWidget::availableGeometry(const QWidget * widget) const
ウィジェット widget を含むスクリーンの利用可能な範囲を取得します

const QRect QDesktopWidget::availableGeometry(const QPoint & p) const
点 p を含むスクリーンの利用可能な範囲を取得します

void QDesktopWidget::resizeEvent(QResizeEvent * event) [virtual protected]

void QDesktopWidget::resized(int screen) [signal]
スクリーンの大きさが変更された場合、このシグナルが送出されます

QWidget * QDesktopWidget::screen(int screen = -1)
インデックス screen のスクリーンを表すウィジェットを取得します
screenの値が-1の場合はデフォルトスクリーンを意味します
仮想デスクトップを使用する場合、返されるウィジェットは仮想デスクトップ全体です

const QRect QDesktopWidget::screenGeometry(int screen = -1) const
インデックス screen のスクリーンの範囲を取得します
screenの値が-1の場合はデフォルトスクリーンを意味します

const QRect QDesktopWidget::screenGeometry(const QWidget * widget) const
ウィジェット widget を含むスクリーンの範囲を取得します

const QRect QDesktopWidget::screenGeometry(const QPoint & p) const
点 p を含むスクリーンの範囲を取得します

int QDesktopWidget::screenNumber(const QWidget * widget = 0) const
ウィジェット widget の大部分を含むスクリーンのインデックスを取得します
ウィジェットが存在しない場合、-1を返します

int QDesktopWidget::screenNumber(const QPoint & point) const
点 point を含むスクリーンのインデックスを取得します
点を含むスクリーンがない場合は、その点から最も近い位置にあるスクリーンのインデックスを返します

void QDesktopWidget::workAreaResized(int screen) [signal]
インデックス screen のスクリーンの利用可能な作業領域が変更された場合、このシグナルが送出されます

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2014年05月28日 19:58