當前位置:
首頁 > 知識 > Qt自定義標籤按鈕

Qt自定義標籤按鈕

當你接觸到Qt時,你會為它極為方便的跨平台方面感到吃驚,從而想嘗試著使用Qt。漸漸地你會發現Qt自帶的一些控制項不能滿足自己的需要,此時就需要我們自己定義一個屬於自己的控制項。總所周知,標籤的風格設置類比較多,但默認的標籤沒有滑鼠響應事件。

今天,給大家帶來的是:標籤按鈕類。從名字就可以看出,將標籤修改成按鈕,從而讓標籤具有按鈕滑鼠的響應功能。

在你的Qt工程中

添加新文件:C++ Class,輸入類名:ClickedLabel ,基類:QLabel。Qt會自動生成ClickedLabel.h和ClickedLabel.cpp文件。

在ClickedLabel.h中

1 #ifndef CLICKEDLABEL_H
2 #define CLICKEDLABEL_H
3
4 #include
5 //夜瀟:17/06/04
6 class ClickedLabel : public QLabel
7 {
8 Q_OBJECT
9 public:
10 ClickedLabel( QWidget* parent = 0);
11 int MyLabelPressed;
12 void mousePressEvent(QMouseEvent *e);//添加滑鼠響應事件
13 void mouseReleaseEvent(QMouseEvent *e);//添加滑鼠釋放事件
14 signals:
15 void clicked;//點擊信號
16
17 };
18
19 #endif // CLICKEDLABEL_H

之後在ClickedLabel.cpp中的構造函數中設置默認風格(註:可以不寫),給MyLabelPressed 附一個初值0;

1 #include "clickedlabel.h"
2
3 ClickedLabel::ClickedLabel(QWidget* parent) : QLabel(parent)
4 {
5 setText("作者:夜瀟!"); //添加標籤默認文本
6 setAlignment(Qt::AlignCenter); //設置默認對齊方式:中心對齊(居中)
7 //設置默認標籤風格
8 setStyleSheet("ClickedLabel { background-color: rgb(143,122,102); border-radius: 10px; font: bold; color: white; }");
9 MyLabelPressed = 0;
10 }
11
12 void ClickedLabel::mousePressEvent ( QMouseEvent * e )
13 {
14 MyLabelPressed = 1;
15 }
16
17 void ClickedLabel::mouseReleaseEvent ( QMouseEvent * e )
18 {
19 if(MyLabelPressed)
20 {
21 emit clicked;
22 MyLabelPressed = 0;
23 }
24 }

然後在你的Qt工程中

添加頭函數:#include "clickedlabel.h"

添加私有函數(private)或者公共函數(public):ClickedLabel *Btn1;

之後再工程文件的CPP文件中實現函數就好了

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 達人科技 的精彩文章:

介紹RxJS在Angular中的應用
撰寫 Viewer 擴展(Extension)
linux 系統備份日誌
python基礎操作 集合 三元運算
你是否也在學習ES6 Promise時遇到過這個問題?

TAG:達人科技 |

您可能感興趣

adidas EQT最新力作,會買一定買Sub Green配色
元宵節限定配色EQT Support 93/17 Boost!實物與效果圖對比你更愛哪個?
利用pyqt來編寫屬於自己的python Gui界面
EQT要火?adidas Originals大片中這四雙EQT目測要炸!
atmos 攜手 adidas Originals 打造日本限定 EQT 聯名配色
數據告訴你什麼值得投,EQT Ventures用機器學習挑戰古典VC
Qt的線程(兩種QThread類的詳細使用方式)
Qt之信號signals和槽slots詳解
Python大神利用PyQt
Jerry楊QTL——關於繪畫
新思科技收購QTronic GmbH,鞏固虛擬原型驗證解決方案領導者地位
adidas Originals EQT Cushion ADV推出全新配色
adidas EQT Support ADV 展示簡約黑白魅力
adidas Originals 全新「EQT ADV」系列
《Dragon Ball Z》x adidas EQT Support ADV「Shenron」發售詳情公開
《Dragon Ball Z》x adidas EQT Support ADV Primeknit「Shenron」官方圖片釋出
adidas Originals EQT Cushion ADV 全新配色設計
adidas Originals EQT ADV PK新配色
聊天框Demo:DotNetCore+ActiveMQ+Mqttjs 實現前後台消息監聽
adidas EQT Support ADV 全新配色即將登場