在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

學Qt,“大小限定”背后的思路和“坑”

嵌入式小生 ? 來源:嵌入式小生 ? 2023-02-02 10:31 ? 次閱讀

一、導讀

在使用Qt開發界面的時候,大小限定是常使用的操作。在界面元素的鼻祖QWidget中提供了一系列的方法,用于設定指定元素的大小或者最小/最大的大?。?/p>

//設置最大高度
voidsetMaximumHeight(intmaxh)

//設置最大大小
voidsetMaximumSize(constQSize&)

//設置最大大小(包含最大寬度、最大高度)
voidsetMaximumSize(intmaxw,intmaxh)

//設置最大寬度
voidsetMaximumWidth(intmaxw)

//設置最小高度
voidsetMinimumHeight(intminh)

//設置最小大小
voidsetMinimumSize(constQSize&)

//設置最小大?。ò钚挾?、最小高度)
voidsetMinimumSize(intminw,intminh)

//設置最小寬度
voidsetMinimumWidth(intminw)

//設置固定高度
voidsetFixedHeight(inth)

//設置固定寬度
voidsetFixedWidth(intw)

//設置固定大小
voidsetFixedSize(constQSize&s)

//設置固定大小(包含固定寬度和高度)
voidsetFixedSize(intw,inth)

上述的成員函數,功能與名稱描述一致。

在不同顯示屏大小的平臺下,或者需要開發自適應大小的應用窗體時,大小限定是必備的操作。

二、大小限定背后的設計思路

如果應用程序的界面窗體大小在實際開發中大小是不變的,就需要使用setFixedxxx函數將窗體設置為固定的大小,不然,在鼠標拖動的情況下,且窗體中的各界面控件沒有設計自適應,則會出現窗體填充不滿或者多控件之間彼此覆蓋的情況,例如如果使用《Qt這四種設置窗體背景的方法,都知道嗎?》一文中所述的QPalette方法設置了背景圖:

Widget::Widget(QWidget*parent)
:QWidget(parent),
ui(newUi::Widget)
{
ui->setupUi(this);

QPalettepalette=this->palette();
palette.setBrush(QPalette::Window,QBrush(QPixmap(":/images/bk.png")));
this->setPalette(palette);
}

這時候拖動鼠標,則會出現下圖所示效果:f5af83f6-a299-11ed-bfe3-dac502259ad0.gif

如果使用QLabel方法設置背景圖:

ui->label->setPixmap(QPixmap(":/images/bk.png"));

則會出現下圖所示效果:

f602f1bc-a299-11ed-bfe3-dac502259ad0.gif

綜上,開發不需要自適應的窗體界面時,為了不影響應用軟件的界面窗體中呈現內容的效果,設置窗體的大小是必要的。

如何設置窗體或者窗體中的界面控件的大小呢?有兩種方法:

(1)在代碼中使用大小限定函數進行設置。

(2)在Qt Designer中選中需要設置的界面控件對象,右鍵單擊,在彈出的對話框中選擇“大小限定”下的選項。

f63cc3a6-a299-11ed-bfe3-dac502259ad0.png

自適應的窗體開發,需要使用Qt提供的布局器(QBoxLayout、QFormLayout、QGridLayout和QStackedLayout)來完成,在代碼中可以直接進行布局描述。當然,使用Qt Designer能夠進行自適應窗體的快速開發,特別是垂直Spacer和水平Spacer這兩個輔助控件在自適應窗體開發中特別好用。

三、小生總結

(1)在開發自適應的應用窗體時,在使用布局器進行布局后,如果窗體大小發生改變,可能窗體中的子控件大小會受到影響(發生大小變換),這時候限定子控件的大小是必須的。

(2)在布局的時候,合理設置Spacer的sizeType屬性,往往可以達到我們想要的布局效果。

f668e0bc-a299-11ed-bfe3-dac502259ad0.png

(3)在使用QLabel顯示文本的時候,QLabel大小需要預先評估,否則太長的字符串無法顯示。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 界面
    +關注

    關注

    0

    文章

    59

    瀏覽量

    15636
  • 函數
    +關注

    關注

    3

    文章

    4333

    瀏覽量

    62705
  • 代碼
    +關注

    關注

    30

    文章

    4791

    瀏覽量

    68700
  • Qt
    Qt
    +關注

    關注

    1

    文章

    306

    瀏覽量

    37948
  • 窗體
    +關注

    關注

    0

    文章

    10

    瀏覽量

    1478
收藏 人收藏

    評論

    相關推薦

    24小時QT編程

    ` 本帖最后由 zgzzlt 于 2012-8-16 09:08 編輯 24小時QT編程`
    發表于 08-12 20:38

    驅動還是Qt

    首先我是一個大二電子信息工程專業的本科生,想在arm這方面發展,現在團隊因為項目需要所以要分驅動和Qt組,之前我是照著國嵌的視頻的,學了裸機和一點點的系統移植,現在不知道選哪個組,希望大家給些建議,謝謝{:3:}
    發表于 12-07 15:02

    IAP思路和代碼以及細節和遇到的地方記錄

    和20K的RAM,也有小道說有后置隱藏的64K,也就是說其實是有128K,我一直也沒有測試,有空測測,有大神這樣說,估計是可以的。這里重點記錄一下我寫的IAP思路和代碼以及細節和遇到的地方。先大體的概...
    發表于 08-23 07:15

    qt值得學習嗎?

    關注+星標公眾號,不錯過精彩內容作者 |李肖遙轉自|技術讓夢想更偉大qt值得學習嗎?嵌入式要的東西真的很多,我們可能會說不寫界面的話就不用qt了?我不贊同。
    發表于 11-08 06:01

    基于Qt/Embedded的嵌入式控制界面開發

    作者通過結合Qt/Embedded的特性和優點,提出用Qt/Embedded實現風力發電控制系統的圖形界面的思路和設計原則,重點介紹了在嵌入式Linux內核基礎上Qt/Embedded
    發表于 08-12 10:14 ?49次下載

    推薦使用QT5.14或者QT5.15版本 不要急著升級到QT6

    ? 推薦使用QT5.14或者QT5.15版本,不建議升級最新版的QT6,很多你要的功能沒了,特別是開發上位機需要的模塊沒了。 Qt 6.0 中已移除的模塊,以下是不在
    的頭像 發表于 01-26 16:37 ?4.8w次閱讀

    Qt Designer、Qt Quick Designer和Qt Creator應用程序有什么區別?

    不管是Qt新手還是開發過qt的群體來說,對Qt Designer、Qt Quick Designer、Qt Creator這幾個應用程序肯定
    的頭像 發表于 03-17 09:40 ?7282次閱讀

    C語言,為什么大家會說這本書是?資料下載

    電子發燒友網為你提供C語言,為什么大家會說這本書是?資料下載的電子資料下載,更有其他相關的電路圖、源代碼、課件教程、中文資料、英文資料、參考設計、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發表于 04-05 08:53 ?7次下載
    <b class='flag-5'>學</b>C語言,為什么大家會說這本書是<b class='flag-5'>坑</b>?資料下載

    【北京迅為】嵌入式Linux+QT開發零基礎入門+項目實戰教程分享

    每一個技術點都能真真切切落實到項目中,即所用。1、獨創框架學習法,先掌握整體的 QT 開發,在逐一擊破!2、手把手教學,從 Windows 到 Linux 在到 QT,從 C ++直到 QT
    發表于 11-01 17:59 ?29次下載
    【北京迅為】嵌入式Linux+<b class='flag-5'>QT</b>開發零基礎入門+項目實戰教程分享

    嵌入式工程師學習Qt的幾種開發方式

    關注+星標公眾號,不錯過精彩內容作者 |李肖遙轉自|技術讓夢想更偉大qt值得學習嗎?嵌入式要的東西真的很多,我們可能會說不寫界面的話就不用qt了?我不贊同。
    發表于 11-03 11:51 ?3次下載
    嵌入式工程師學習<b class='flag-5'>Qt</b>的幾種開發方式

    Qt,此問題必解!

    用同樣的方法新創建一個類,(用鼠標點擊工程項目后,右鍵單擊,選擇“添加新文件”,在彈出的對話框中,選擇Qt->Qt設計師界面類->Widget)將會彈出“選擇類名”對話框:
    的頭像 發表于 01-04 14:25 ?1140次閱讀

    Qt大小限定背后思路和“

    如果應用程序的界面窗體大小在實際開發中大小是不變的,就需要使用setFixedxxx函數將窗體設置為固定的大小,不然,在鼠標拖動的情況下,且窗體中的各界面控件沒有設計自適應,則會出現窗體填充不滿或者多控件之間彼此覆蓋的情況
    的頭像 發表于 02-02 10:16 ?1553次閱讀

    Qt“靈魂”之Meta-Object系統

    Meta-Object即是Qt的元對象系統,下文都以元對象系統進行描述。在Qt中,具有標志性特征的則是信號和槽函數機制,該機制的背后實現本質上則是元對象系統。編寫Qt代碼的時候,在定義
    的頭像 發表于 02-10 13:50 ?2010次閱讀

    基于Qt 5.15源碼來聊聊隱式共享

    在實際開發中,Qt中很多類可以直接作為函數參數傳遞,這是為什么?其背后的實現機制又是什么?這些都歸功于隱式共享
    的頭像 發表于 02-12 16:52 ?807次閱讀

    QTQT上位機串口編程

    QTQT上位機串口編程 最近因為項目需要,需要用到上位機,通過串口與上位機進行通訊,來上傳和下發一些數據以及控制指令,所以用QT寫了一個上位機,并記錄下來,免得到時候要用又到處翻資料。
    發表于 05-08 10:02 ?25次下載
    <b class='flag-5'>QT</b>篇<b class='flag-5'>QT</b>上位機串口編程
    主站蜘蛛池模板: h在线观看免费| 亚洲人成人| 婷婷色九月综合激情丁香| 美国色天使| 免费爱爱小视频| 久久久噜久噜久久综合| 国产片一级aaa毛片视频| 国产精品黄页网站在线播放免费| 国产精品久久久亚洲| 又粗又硬又爽又黄毛片| 台湾久久| aa国产| 久久久久久久成人午夜精品福利| 久久久久久久久久免免费精品| 大又大又粗又爽女人毛片| 简单视频在线播放jdav| 美女视频一区二区| 亚洲欧美综合一区| 日本三级日产三级国产三级| 香港三级理论在线观看网站| 四虎影视院| 精品日韩一区二区三区| 91欧美精品激情在线观看| 奇米7777第四色| 深夜视频在线免费观看| 国产美女亚洲精品久久久久久 | 亚洲+国产+图片| 日韩一级片免费看| 国产在线高清精品二区色五郎| 夜夜爱夜夜做| 成年片色大黄全免费| 清冷双性被cao的合不拢腿| 天堂网在线最新版www中文网| 最近2018中文字幕免费看手机| 亚洲 成人 欧美 自拍| 男人都懂得网址| 一级一片一a一片| 成人黄色在线网站| 国产精品爱久久久久久久三级 | 在线 | 一区二区三区四区| 很黄的网站在线观看|