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

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

嵌入式小生 ? 來(lái)源:嵌入式小生 ? 2023-02-02 10:31 ? 次閱讀

一、導(dǎo)讀

在使用Qt開(kāi)發(fā)界面的時(shí)候,大小限定是常使用的操作。在界面元素的鼻祖QWidget中提供了一系列的方法,用于設(shè)定指定元素的大小或者最小/最大的大小:

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

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

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

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

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

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

//設(shè)置最小大小(包含最小寬度、最小高度)
voidsetMinimumSize(intminw,intminh)

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

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

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

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

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

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

在不同顯示屏大小的平臺(tái)下,或者需要開(kāi)發(fā)自適應(yīng)大小的應(yīng)用窗體時(shí),大小限定是必備的操作。

二、大小限定背后的設(shè)計(jì)思路

如果應(yīng)用程序的界面窗體大小在實(shí)際開(kāi)發(fā)中大小是不變的,就需要使用setFixedxxx函數(shù)將窗體設(shè)置為固定的大小,不然,在鼠標(biāo)拖動(dòng)的情況下,且窗體中的各界面控件沒(méi)有設(shè)計(jì)自適應(yīng),則會(huì)出現(xiàn)窗體填充不滿或者多控件之間彼此覆蓋的情況,例如如果使用《Qt這四種設(shè)置窗體背景的方法,都知道嗎?》一文中所述的QPalette方法設(shè)置了背景圖:

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);
}

這時(shí)候拖動(dòng)鼠標(biāo),則會(huì)出現(xiàn)下圖所示效果:f5af83f6-a299-11ed-bfe3-dac502259ad0.gif

如果使用QLabel方法設(shè)置背景圖:

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

則會(huì)出現(xiàn)下圖所示效果:

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

綜上,開(kāi)發(fā)不需要自適應(yīng)的窗體界面時(shí),為了不影響應(yīng)用軟件的界面窗體中呈現(xiàn)內(nèi)容的效果,設(shè)置窗體的大小是必要的。

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

(1)在代碼中使用大小限定函數(shù)進(jìn)行設(shè)置。

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

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

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

三、小生總結(jié)

(1)在開(kāi)發(fā)自適應(yīng)的應(yīng)用窗體時(shí),在使用布局器進(jìn)行布局后,如果窗體大小發(fā)生改變,可能窗體中的子控件大小會(huì)受到影響(發(fā)生大小變換),這時(shí)候限定子控件的大小是必須的。

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

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

(3)在使用QLabel顯示文本的時(shí)候,QLabel大小需要預(yù)先評(píng)估,否則太長(zhǎng)的字符串無(wú)法顯示。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 界面
    +關(guān)注

    關(guān)注

    0

    文章

    59

    瀏覽量

    15794
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4374

    瀏覽量

    64377
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4891

    瀏覽量

    70348
  • Qt
    Qt
    +關(guān)注

    關(guān)注

    1

    文章

    313

    瀏覽量

    38888
  • 窗體
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    1524
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    24小時(shí)學(xué)QT編程

    ` 本帖最后由 zgzzlt 于 2012-8-16 09:08 編輯 24小時(shí)學(xué)QT編程`
    發(fā)表于 08-12 20:38

    學(xué)驅(qū)動(dòng)還是學(xué)Qt

    首先我是一個(gè)大二電子信息工程專業(yè)的本科生,想在arm這方面發(fā)展,現(xiàn)在團(tuán)隊(duì)因?yàn)轫?xiàng)目需要所以要分驅(qū)動(dòng)和Qt組,之前我是照著國(guó)嵌的視頻學(xué)的,學(xué)了裸機(jī)和一點(diǎn)點(diǎn)的系統(tǒng)移植,現(xiàn)在不知道選哪個(gè)組,希望大家給些建議,謝謝{:3:}
    發(fā)表于 12-07 15:02

    IAP思路和代碼以及細(xì)節(jié)和遇到的地方記錄

    和20K的RAM,也有小道說(shuō)有后置隱藏的64K,也就是說(shuō)其實(shí)是有128K,我一直也沒(méi)有測(cè)試,有空測(cè)測(cè),有大神這樣說(shuō),估計(jì)是可以的。這里重點(diǎn)記錄一下我寫(xiě)的IAP思路和代碼以及細(xì)節(jié)和遇到的地方。先大體的概...
    發(fā)表于 08-23 07:15

    qt值得學(xué)習(xí)嗎?

    關(guān)注+星標(biāo)公眾號(hào),不錯(cuò)過(guò)精彩內(nèi)容作者 |李肖遙轉(zhuǎn)自|技術(shù)讓夢(mèng)想更偉大qt值得學(xué)習(xí)嗎?嵌入式要學(xué)的東西真的很多,我們可能會(huì)說(shuō)不寫(xiě)界面的話就不用學(xué)qt了?我不贊同。
    發(fā)表于 11-08 06:01

    基于Qt/Embedded的嵌入式控制界面開(kāi)發(fā)

    作者通過(guò)結(jié)合Qt/Embedded的特性和優(yōu)點(diǎn),提出用Qt/Embedded實(shí)現(xiàn)風(fēng)力發(fā)電控制系統(tǒng)的圖形界面的思路和設(shè)計(jì)原則,重點(diǎn)介紹了在嵌入式Linux內(nèi)核基礎(chǔ)上Qt/Embedded
    發(fā)表于 08-12 10:14 ?49次下載

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

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

    Qt Designer、Qt Quick Designer和Qt Creator應(yīng)用程序有什么區(qū)別?

    不管是Qt新手還是開(kāi)發(fā)過(guò)qt的群體來(lái)說(shuō),對(duì)Qt Designer、Qt Quick Designer、Qt Creator這幾個(gè)應(yīng)用程序肯定
    的頭像 發(fā)表于 03-17 09:40 ?7580次閱讀

    學(xué)C語(yǔ)言,為什么大家會(huì)說(shuō)這本書(shū)是?資料下載

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

    【北京迅為】嵌入式Linux+QT開(kāi)發(fā)零基礎(chǔ)入門(mén)+項(xiàng)目實(shí)戰(zhàn)教程分享

    每一個(gè)技術(shù)點(diǎn)都能真真切切落實(shí)到項(xiàng)目中,學(xué)即所用。1、獨(dú)創(chuàng)框架學(xué)習(xí)法,先掌握整體的 QT 開(kāi)發(fā),在逐一擊破!2、手把手教學(xué),從 Windows 到 Linux 在到 QT,從 C ++直到 QT
    發(fā)表于 11-01 17:59 ?29次下載
    【北京迅為】嵌入式Linux+<b class='flag-5'>QT</b>開(kāi)發(fā)零基礎(chǔ)入門(mén)+項(xiàng)目實(shí)戰(zhàn)教程分享

    嵌入式工程師學(xué)習(xí)Qt的幾種開(kāi)發(fā)方式

    關(guān)注+星標(biāo)公眾號(hào),不錯(cuò)過(guò)精彩內(nèi)容作者 |李肖遙轉(zhuǎn)自|技術(shù)讓夢(mèng)想更偉大qt值得學(xué)習(xí)嗎?嵌入式要學(xué)的東西真的很多,我們可能會(huì)說(shuō)不寫(xiě)界面的話就不用學(xué)qt了?我不贊同。
    發(fā)表于 11-03 11:51 ?3次下載
    嵌入式工程師學(xué)習(xí)<b class='flag-5'>Qt</b>的幾種開(kāi)發(fā)方式

    學(xué)Qt,此問(wèn)題必解!

    用同樣的方法新創(chuàng)建一個(gè)類,(用鼠標(biāo)點(diǎn)擊工程項(xiàng)目后,右鍵單擊,選擇“添加新文件”,在彈出的對(duì)話框中,選擇Qt->Qt設(shè)計(jì)師界面類->Widget)將會(huì)彈出“選擇類名”對(duì)話框:
    的頭像 發(fā)表于 01-04 14:25 ?1538次閱讀

    Qt大小限定背后思路和“

    如果應(yīng)用程序的界面窗體大小在實(shí)際開(kāi)發(fā)中大小是不變的,就需要使用setFixedxxx函數(shù)將窗體設(shè)置為固定的大小,不然,在鼠標(biāo)拖動(dòng)的情況下,且窗體中的各界面控件沒(méi)有設(shè)計(jì)自適應(yīng),則會(huì)出現(xiàn)窗體填充不滿或者多控件之間彼此覆蓋的情況
    的頭像 發(fā)表于 02-02 10:16 ?1782次閱讀

    Qt“靈魂”之Meta-Object系統(tǒng)

    Meta-Object即是Qt的元對(duì)象系統(tǒng),下文都以元對(duì)象系統(tǒng)進(jìn)行描述。在Qt中,具有標(biāo)志性特征的則是信號(hào)和槽函數(shù)機(jī)制,該機(jī)制的背后實(shí)現(xiàn)本質(zhì)上則是元對(duì)象系統(tǒng)。編寫(xiě)Qt代碼的時(shí)候,在定義
    的頭像 發(fā)表于 02-10 13:50 ?2625次閱讀

    基于Qt 5.15源碼來(lái)聊聊隱式共享

    在實(shí)際開(kāi)發(fā)中,Qt中很多類可以直接作為函數(shù)參數(shù)傳遞,這是為什么?其背后的實(shí)現(xiàn)機(jī)制又是什么?這些都?xì)w功于隱式共享
    的頭像 發(fā)表于 02-12 16:52 ?1173次閱讀

    QTQT上位機(jī)串口編程

    QTQT上位機(jī)串口編程 最近因?yàn)轫?xiàng)目需要,需要用到上位機(jī),通過(guò)串口與上位機(jī)進(jìn)行通訊,來(lái)上傳和下發(fā)一些數(shù)據(jù)以及控制指令,所以用QT寫(xiě)了一個(gè)上位機(jī),并記錄下來(lái),免得到時(shí)候要用又到處翻資料。
    發(fā)表于 05-08 10:02 ?25次下載
    <b class='flag-5'>QT</b>篇<b class='flag-5'>QT</b>上位機(jī)串口編程
    主站蜘蛛池模板: 九九热精品在线 | 黑色丝袜美美女被躁视频 | 日本免费在线一区 | 欧美黄色录像 | 99香蕉精品视频在线观看 | 亚洲午夜综合网 | 特级黄视频 | 女人张开腿给男人桶爽免费 | 午夜小视频男女在线观看 | 天天爽夜夜爽免费看 | 欧美色图亚洲综合 | 日韩a级毛片 | 港台无码 | 久久综合久久精品 | 天堂视频网 | 国产精品一区二区三区四区 | 婷婷开心激情网 | 日日爱网站 | 69pao强力打造免费高清 | 黄视频网站在线看 | 色偷偷视频 | 激情综合婷婷 | 黄色在线网 | 噜噜吧噜噜色 | 亚洲人成网站在线在线 | 真实国产伦子系 | 狠狠色噜噜噜噜狠狠狠狠狠狠奇米 | 511韩国理论片在线观看 | 插白浆| 日韩精品一级毛片 | 国产精品嫩草影院人体模特 | 亚洲综合色婷婷在线观看 | 一级特黄aa毛片免费观看 | 免费大片av手机看片 | 激情伦成人综合小说 | 亚洲高清美女一区二区三区 | 国产精品高清一区二区三区 | 69中国xxxxxxxx18 | 国产在线理论片免费播放 | 97就要鲁就要鲁夜夜爽 | 99久久国产免费 - 99久久国产免费 |