QTのカスタムメインウィンドウ

1.開発環境:Qtの4.7.3 + MinGWの32ビット(32ビットMSVC2015)

2.アウトラインを達成するために:

          1)カスタムの境界線、タイトルバー、ツールバー、コンテンツバー、ステータスバーには)次の3つのコード(の実現を達成していません

          2)自由にハウジングを移動させることができるマウスを制御するためにイベントを書き換えます

          3)スタイルファイルQSS実装し、UI設計/データ/制御分離、二次開発を容易にするために、

3.特定の実装:

        1)典型的には、Qtの提供元のウィンドウシステムと比較して、Linuxまたはあまり魅力下境界スタイルQMainwindowは、オリジナルフレーム、およびカスタムを廃棄することができます。以下のように設定するパラメータは次のとおりです。

    setWindowFlags(Qtの:: FramelessWindowHint | Qtの:: WindowMinimizeButtonHint); //設定ボーダープロパティ、境界線なし
    setAttribute(Qtの:: WA_TranslucentBackground); //背景を半透明に設定    

         2)フレームの枠線に設計スタイル、境界線によって境界を設定するために、アセンブリQFrameを追加するために使用することができる、デザインの関連する特性をQFrameが、設計プロセス中に見つかった、追加した場合直接添加QFrameのメインウィンドウの成分、及び設定ボーダープロパティの境界プロパティが無効ました。ソリューションは、境界線のスタイルQFrameを表示するには、QMainwindowとQFrame間の「キャンバス」としてQWidgetのを追加することができます。

        3)一般的には、ウィンドウのタイトルバーは、典型的にはQFrame + QHBoxLayoutは、追加ボタンで実現されたように等の成分を添加することができる、アイコン、タイトル概要、非表示/拡大/縮小/オフを含む推奨QToolButton(のQPushButtonを使用することができるが、 setAutoDefaultのfalseに設定する必要があり、それ以外の場合は、キーを入力してくださいについての質問に応じて、ある設計ダイアログボックス物事のバグ、中に隠さ植え爆弾になります)、およびリリースをぶら下げながら、そのプロパティとホバーツールチップ(ヒントボタンの機能を設定)などの属性。

       4)次に、マウスイベントを直接移動レコードを変換するために)主POS(の座標と相対座標によって決定されるシステム、座標globalPos()の4つの複製機能に、メインウィンドウマウスのドラッグ機能を達成するために再定義される必要があります次のように、フォームの動きを達成するために距離:

    空mouseReleaseEvent(QMouseEvent *イベント); //マウスの左ボタンを離します
    ボイドmouseMoveEvent(QMouseEvent *イベント); //マウスの左ボタンは、具体的に押すかどうかを決定するためにボタン()>システムがevent-を提供し、押されました
    空mousePressEvent(QMouseEvent *イベント); //マウスの左ボタンがダウンして座標を押すと、タイトルバー
    空mouseDoubleClickEvent(QMouseEvent *イベント); //イベントは、タイトルバーのズーム機能に関連するボタンをダブルクリックして、完了です

 

4.参照、特定のコードをダウンロードしてください:https://download.csdn.net/my/uploads

5.スクリーンショットを実装します。

 

发布了72 篇原创文章 · 获赞 32 · 访问量 3万+

おすすめ

転載: blog.csdn.net/xx18030637774/article/details/104576742