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