Qt按鍵 (自定義樣式)

2021-08-04 13:16:13 字數 3092 閱讀 8426

qt中預設的按鈕樣式比較一般,為了實現優美的介面qt支援對按鍵的樣式自定義。一般有兩種途徑來自定義按鍵樣式,第一種是通過設定按鍵在不同狀態(常規、滑鼠停留、滑鼠按下)的顏色和樣式、第二種是設定按鍵在不同狀態下顯示不同的,下面通過實現下面介面來展示這兩種方法:

一、通過設定按鍵顏色

下面先給出上圖中所展示的「註冊賬號」這個按鍵的實現方法:

m_registeraccountbtn = new qpushbutton(this);

m_registeraccountbtn->resize(80, 30);

m_registeraccountbtn->move(260, 50);

m_registeraccountbtn->settext("註冊賬號");

qstring btnstyle1 = "\

qpushbutton\

qpushbutton:hover\

qpushbutton:pressed";

m_registeraccountbtn->setstylesheet(btnstyle1);

這裡分別制定了按鍵在三種狀態下的顏色。下面給出「登入」按鍵的實現**:

m_loginbtn = new qpushbutton(this);

m_loginbtn->settext("登入");

m_loginbtn->resize(200, 30);

m_loginbtn->move(50, 50);

qstring btnstyle2 =

"qpushbutton\

qpushbutton:hover\

qpushbutton:pressed";

m_loginbtn->setstylesheet(btnstyle2);

上述**不僅指定了按鍵在三種狀態下的顏色,還指定了按鍵的樣式等。

二、通過設定按鍵

這裡設定也相對比較簡單,只是指定了三種狀態下顯示不同的。

三、總結

widget.h

#ifndef widget_h

#define widget_h

#include

#include

class widget : public qwidget

;#endif // widget_h

widget.cpp

#include "widget.h"

widget::widget(qwidget *parent)

: qwidget(parent)

\ qpushbutton:hover\

qpushbutton:pressed";

m_closebtn->setstylesheet(closebtnstyle);

m_registeraccountbtn = new qpushbutton(this);

m_registeraccountbtn->resize(80, 30);

m_registeraccountbtn->move(260, 50);

m_registeraccountbtn->settext("註冊賬號");

qstring btnstyle1 = "\

qpushbutton\

qpushbutton:hover\

qpushbutton:pressed";

m_registeraccountbtn->setstylesheet(btnstyle1);

m_loginbtn = new qpushbutton(this);

m_loginbtn->settext("登入");

m_loginbtn->resize(200, 30);

m_loginbtn->move(50, 50);

qstring btnstyle2 =

"qpushbutton\

qpushbutton:hover\

qpushbutton:pressed";

m_loginbtn->setstylesheet(btnstyle2);

connectslots();

}void widget::connectslots()

void widget::onregistercount()

void widget::onloginbtn()

void widget::onclosebtn()

widget::~widget()

main.cpp

#include "widget.h"

int main(int argc, char *argv)

QT自定義滑鼠樣式

在qt開發中,難免會遇到想要改變滑鼠的樣式。qt中本身提供十幾種常見的滑鼠樣式 舉例說明如何更改 假設顯示乙個label,想要滑鼠落在label上的時候,滑鼠變成手形,如下 ui label setcursor qt openhandcursor 有時候,這幾種樣式並不能滿足開發的需要。比如開發畫圖...

Qt 自定義 滾動條 樣式

今天是時候把軟體中的進度條給美化美化了,最初的想法就是仿照qq。qt設定樣式的方式有兩種,一種直接在程式中寫,適用於樣式不多的情況 另一種,寫入到檔案中,適用用樣式較大且需要提供換膚功能的情況。1.寫入到檔案中,新建個xx.qss,然後複製一下內容 設定垂直滾動條基本樣式 qscrollbar ve...

qt自定義控制項樣式04 QPushButton

注釋只為解釋,qss語法並不能直接這樣寫,美化控制項時,下面的所有選項並不需要全部進行設定,自行選擇qpushbutton qpushbutton pushbutton pressed 滑鼠按下時的效果 qpushbutton flat 按鈕樣式 qpushbutton open 當按鈕開啟選單時 ...