翻譯|使用教程|編輯:龔雪|2023-12-19 10:30:38.603|閱讀 116 次
概述:本文將為大家介紹Qt Widget的模擬計(jì)算器的示例,歡迎下載最新版組件體驗(yàn)~
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
Qt 是目前最先進(jìn)、最完整的跨平臺(tái)C++開發(fā)工具。它不僅完全實(shí)現(xiàn)了一次編寫,所有平臺(tái)無差別運(yùn)行,更提供了幾乎所有開發(fā)過程中需要用到的工具。如今,Qt已被運(yùn)用于超過70個(gè)行業(yè)、數(shù)千家企業(yè),支持?jǐn)?shù)百萬設(shè)備及應(yīng)用。
本文將展示如何使用信號(hào)和槽來實(shí)現(xiàn)計(jì)算器小部件的功能,以及如何使用QGridLayout在網(wǎng)格中放置子小部件。在上文中(點(diǎn)擊這里回顧>>),我們?yōu)榇蠹医榻B了Calculator類的定義和實(shí)現(xiàn),接下來的內(nèi)容將主要介紹計(jì)算器中Button類的定義和實(shí)現(xiàn)!持續(xù)關(guān)注我們,有更多實(shí)用示例介紹哦~
Qt技術(shù)交流群:166830288 歡迎一起進(jìn)群討論
現(xiàn)在讓我們來看看Button類:
class Button : public QToolButton { Q_OBJECT public: explicit Button(const QString &text, QWidget *parent = nullptr); QSize sizeHint() const override; };
Button類有一個(gè)方便的構(gòu)造函數(shù),它接受一個(gè)文本標(biāo)簽和一個(gè)父小部件,并且它重新實(shí)現(xiàn)了() ,以在文本周圍提供比更多的空間。
Button::Button(const QString &text, QWidget *parent) : QToolButton(parent) { setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); setText(text); }
按鈕的外觀由計(jì)算器小部件的布局通過布局子小部件的大小和大小策略決定,在構(gòu)造函數(shù)中調(diào)用setSizePolicy()函數(shù)確保按鈕將水平展開來填充所有空間;默認(rèn)情況下,s不會(huì)展開來填充可用空間。如果沒有這個(gè)調(diào)用,同一列中的不同按鈕將具有不同的寬度。
QSize Button::sizeHint() const { QSize size = QToolButton::sizeHint(); size.rheight() += 20; size.rwidth() = qMax(size.width(), size.height()); return size; }
在sizeHint()中,我們嘗試返回一個(gè)適合大多數(shù)按鈕的大小。重用基類(QToolButton)的大小提示,但以以下方式修改它:
這確保了對于大多數(shù)字體、數(shù)字和操作符按鈕將是方形的,不會(huì)截?cái)郆ackspace、Clear和Clear All按鈕上的文本。
下面的屏幕截圖顯示了如果我們沒有在構(gòu)造函數(shù)中將水平大小策略設(shè)置為QSizePolicy:: expand,并且沒有重新實(shí)現(xiàn)QWidget::sizeHint(),那么Calculator小部件將是什么樣子。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都網(wǎng)