日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt实用技巧:自定义窗口标题栏

發布時間:2023/12/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt实用技巧:自定义窗口标题栏 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

若該文為原創文章,未經允許不得轉載
原博主博客地址:https://blog.csdn.net/qq21497936
原博主博客導航:https://blog.csdn.net/qq21497936/article/details/102478062
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/79223848
各位讀者,知識無窮而人力有窮,要么改需求,要么找專業人士,要么自己研究

紅胖子(紅模仿)的博文大全:開發技術集合(包含Qt實用技術、樹莓派、三維、OpenCV、OpenGL、ffmpeg、OSG、單片機、軟硬結合等等)持續更新中…(點擊傳送門)

Qt開發專欄:實用技巧(點擊傳送門)

?

需求

? ? ? ? 制作窗口時,需要自定義窗口標題欄,此時我們可使用與系統相關的API達到修改標題欄的需求,但是比較麻煩,筆者提供一種比較便捷的方法,但是最好不要使用菜單和工具欄(達不到想要的想過),或者自己重寫菜單欄和工具欄,布局到菜單欄的下面。

?

原理

? ? ? ? 將原窗口的標題欄隱藏,自己制作一個(注意左、上、右的margin要設為0)

?

Demo下載地址

? ? ? ? http://download.csdn.net/download/qq21497936/10234989

?

關于切圖

? ? ? ? 若不會切圖,請查看《PS實用技巧:用原始圖片制作顯示(正常狀態)、鼠標懸浮(hover)、鼠標點擊(pressed)的方法》:

? ? ? ??http://blog.csdn.net/qq21497936/article/details/79226258

?

實現Demo步驟

步驟一:創建一個基本的GUI程序

步驟二:設置標題欄為 Qt::FramelessWindowHint

步驟三:使用QHBoxLayout,布局好后(最大最小寬度都設為24,表標寬度隨意),將QHBoxLayout提升為QWidget

步驟四:添加圖片效果,準備好圖片,創建資源文件并加載

步驟五:添加樣式,給Mainwindow設置sheetstyle

?

?

/* 全局 */ *{ font: 18px Tahoma, Geneva, sans-serif; }/* 標題欄 */ horizontalWidget/* 軟件圖標 */ QLabel#label_icon { border-image: url(:/images/images/24x24.ico); }/* 最小化按鈕 */ QPushButton#pushButton_min { border-image: url(:/images/images/minus.png); } QPushButton#pushButton_min:hover { border-image: url(:/images/images/minus_hover.png); } QPushButton#pushButton_min:pressed { border-image: url(:/images/images/minus_pressed.png); }/* 最大化/恢復按鈕 */ QPushButton#pushButton_max { border-image: url(:/images/images/maximize.png); } QPushButton#pushButton_max:hover { border-image: url(:/images/images/maximize_hover.png);} QPushButton#pushButton_max:pressed { border-image: url(:/images/images/maximize_pressed.png);} QPushButton#pushButton_max:checked { border-image: url(:/images/images/restore.png);} QPushButton#pushButton_max:checked:hover { border-image: url(:/images/images/restore_hover.png);} QPushButton#pushButton_max:checked:pressed { border-image: url(:/images/images/restore_pressed.png);}/* 退出按鈕 */ QPushButton#pushButton_exit { border-image: url(:/images/images/close.png);} QPushButton#pushButton_exit:hover { border-image: url(:/images/images/close_hover.png);} QPushButton#pushButton_exit:pressed { border-image: url(:/images/images/close_pressed.png);}

?

在QtDesigner設計器中去掉工具欄,最終效果如圖(沒有實現按鈕功能、單擊可拽拖、雙擊切換最大化/正常)

?

原博主博客地址:https://blog.csdn.net/qq21497936
原博主博客導航:https://blog.csdn.net/qq21497936/article/details/102478062
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/79223848

總結

以上是生活随笔為你收集整理的Qt实用技巧:自定义窗口标题栏的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。