QT常用控件(二)——自定義控件封裝


引言

Qt已經提供了很多的基礎控件供開發使用,而Qt原生的控件有時候並不能滿足我們的需求,特別是在工業的運用上,比如我們需要一個日期時間的選擇器,Qt雖然已經提供了原生的QDateTime控件,但這個原生控件並不能滿足我們的需求,又比如我們需要實現類似微信左側的消息列表,單純的原生QListWidget(QListView)並不能完整的滿足需求,這個時候我們就會尋找一種可以滿足我們需求的控件。而Qt提供了自定義控件的功能,我們可以通過QtCreator自定義自己的控件,以滿足業務的需求。下面我們看看如何使用Qt在VS的環境下生成自定義控件。


由於做項目中,需要確定按鈕的狀態,我想自定義封裝一個Button控件(一個控件點擊,另一個控件變色,帶圖標),並在主界面中直接調用。

一,創建工程,並在工程中添加一個新的ui類(用於封裝控件)

添加->add qt class->qt widget class  (在VS環境下,本篇以VS為例)

添加新文件->qt->qt設計師界面類   (QT環境下)

 二,在mybutton.ui中自定義控件

這里可以是多個控件的組合,最后封裝成一個控件

 三,在mybutton.cpp中編寫要實現button的功能

#include "mybutton.h"

MyButton::MyButton(QWidget *parent)
    : QWidget(parent)
{
    ui.setupUi(this);
    
    connect(ui.btn1, &QPushButton::clicked, [=]() {
        ui.btn2->setIcon(QIcon("D:/Image/Luffy.png"));
        ui.btn2->setStyleSheet("color:rgb(255,0,0)");
        });
}

MyButton::~MyButton()
{
}

 

四,在主程序中調用MyButton類

 這個MyButton類可以作為獨立的窗口顯示,也可以作為一個控件來使用:打開 Qt 的.ui 文件,因為 MyButton是派生自 Qwidget 類,所以需要在 ui 文件中先放入一個 QWidget 控件,然后再上邊鼠標右鍵。

彈出提升窗口部件對話框

 五,運行程序

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM