Qt setWindowFlagsについて

Qtでウィンドウを生成する際、一言にウィンドウと言ってもダイアログウィンドウやポップアップウィンドウ等様々なタイプがあります。 またその他ウィンドウとしての機能で様々なオプションがありますが、これらの設定をQWidgetのsetWindowFlags()メソッドを利用して設定します。

setWindowFlags(Qt::WindowFlags Type)

ウィンドウフラグではTypeとHintの2種類の値をセットする事が出来、Typeでは大まかなウィンドウのタイプ(PopupやDialog等)を設定し、Hintでは細かいオプションを設定する事が出来ます。

またTypeは1つの値しか設定出来ませんが、Hintは複数設定する事が出来ます。

    //Window
    QWidget *window = new QWidget;
    window->setWindowTitle("サンプルウィンドウ");
    
    window->setWindowFlags(Qt::Window|
                           Qt::CustomizeWindowHint|
                           Qt::WindowCloseButtonHint);

    window->show();

タイプの種類について

Type 説明
Qt::Window 一般的なタイトルとコントロールのあるウィンドウを作成します
Qt::Dialog ダイアログウィンドウが生成され、最大化・最小化のコントロールがありません
Qt::Sheet Mac OSのSheetを生成します。コントロールやタイトルはありません
Qt::Drawer Mac OSのサブウィンドウを生成します。ウィンドウレイヤーは親ウィンドウの前後になります
Qt::Popup ポップアップウィンドウを生成します。他のコントロールをクリックすると閉じます
Qt::Tool ツールウィンドウを生成します。タイトルや装飾は必要最低限の物しかありません
Qt::ToolTip ツールチップである事を示します。ツールチップを構成する際に使われます
Qt::SplashScreen スプラッシュスクリーンを生成します
Qt::SubWindow サブウィンドウを生成します

Hint 説明
Qt::MSWindowsFixedSizeDialogHint Windows上でウィンドウに細いダイアログ境界を付けます。
Qt::FramelessWindowHint ボーダレスウィンドウを作成します。ユーザは、ウィンドウシステムを介してボーダレスウィンドウを移動またはサイズ変更することはできません。
Qt::CustomizeWindowHint デフォルトのウィンドウタイトルヒントをオフにします。
Qt::WindowTitleHint ウィンドウにタイトルバーを付けます。
Qt::WindowSystemMenuHint ウィンドウシステムメニューを追加し、場合によっては閉じるボタンを追加します(たとえばMacの場合)。閉じるボタンを隠したり表示したりする必要がある場合は、移植性が高くなりますWindowCloseButtonHint。
Qt::WindowMinimizeButtonHint 最小化ボタンを追加します。
Qt::WindowMaximizeButtonHint 最大化ボタンを追加します。
Qt::WindowMinMaxButtonsHint 最小化ボタンと最大化ボタンを追加します。
Qt::WindowCloseButtonHint 閉じるボタンを追加します。
Qt::WindowContextHelpButtonHint コンテキストヘルプボタンをダイアログに追加します。
Qt::MacWindowToolBarButtonHint Mac OSツールバーのボタンを追加します(つまり、ツールバーを持つウィンドウの右上にある楕円形のボタン)。
Qt::WindowFullscreenButtonHint Mac OSのフルスクリーンボタンが追加されます。
Qt::WindowStaysOnTopHint 画面最前面にウィンドウを表示する。
Qt::WindowStaysOnBottomHint ウィンドウを他のウィンドウの一番後ろに配置する。

資料

コメント

このブログの人気の投稿

Qt ウィンドウのあれこれ

Qt レイアウト 余白の処理