Qt自定義標籤按鈕
當你接觸到Qt時,你會為它極為方便的跨平台方面感到吃驚,從而想嘗試著使用Qt。漸漸地你會發現Qt自帶的一些控制項不能滿足自己的需要,此時就需要我們自己定義一個屬於自己的控制項。總所周知,標籤的風格設置類比較多,但默認的標籤沒有滑鼠響應事件。
今天,給大家帶來的是:標籤按鈕類。從名字就可以看出,將標籤修改成按鈕,從而讓標籤具有按鈕滑鼠的響應功能。
在你的Qt工程中
添加新文件:C++ Class,輸入類名:ClickedLabel ,基類:QLabel。Qt會自動生成ClickedLabel.h和ClickedLabel.cpp文件。
在ClickedLabel.h中
1 #ifndef CLICKEDLABEL_H 之後在ClickedLabel.cpp中的構造函數中設置默認風格(註:可以不寫),給MyLabelPressed 附一個初值0; 1 #include "clickedlabel.h" 然後在你的Qt工程中
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
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 }
添加頭函數:#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 全新配色即將登場