Qt5開發學習之調色盤與各種工具類(五)

2021-08-04 21:43:01 字數 3748 閱讀 5460

qtoolbox類稱為稱為工具盒類,qtoolbox提供一種列狀的層疊窗體。qtoolbutton提供了一種快速訪問命令或選擇項的按鈕,通常在工具條中使用。抽屜效果是軟體介面中一種常用形式,可以以一種直觀的方式在有限大小的介面上擴充套件出更多的功能。

使用qtoolbox類實現乙個類似qq聊天介面的抽屜效:

}qt提供qpalette類專門用於管理對話方塊的外觀顯示。qpalette類相當於對話方塊活控制項的調色盤,控制著視窗與控制項的所有顏色資訊,所有窗體或控制項都包含乙個qpalette物件,在顯示時按照它的qpalette物件中各部分狀態下的顏色顯示進行繪製。

qpalette有兩個基本概念,乙個是colorgroup另乙個是colorrolecolorgroup有三種不同的狀態:qpalette::active獲得焦點的狀態;qpalette::inactivate未獲得焦點的狀態;qpalette::disable不可用的狀態。colorrole指的是顏色主題,即窗體中不同部位的顏色的分類。最常使用的函式是qpalette::setcolor函式對顏色進行設定的同時,還區分狀態。qpalette::setbrush通過畫刷的設定對顯示進行更改,即可以使用改變主題而非單一的顏色。

下面的**使用qpalette類實現改變不同控制項顏色的方法:

palette.h:

#include 

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

class

palette : public

qdialog

;

palette.cpp:

#include "palette.h"

palette::palette(qwidget *parent)

: qdialog(parent)

palette::~palette()

void palette::createctrlframe()

void palette::createcontnetframe()

void palette::fillcolorlist(qcombobox *c)

}// 用於響應背景顏色的選擇

void palette::showwindow()

// 用於響應文字的顏色,就是對前景色設定

void palette::showwindowtext()

// 對按鈕背景色的選擇

void palette::showbutton()

// 對按鈕上文字的選擇

void palette::showbuttontext()

// 文字框背景色的選擇

qtimecurrenttime()函式用於獲取當前的系統時間,qtimetostring()函式用於將獲取到的時間轉換為字串型別。為了便於顯示,tostring()函式的引數需要指定轉換後時間的顯示格式,也可以直接利用qt::dataformat作為引數指定顯示的時間格式,如qt::textdate,qt::isodate,qt::localdate

qlcdnumber類重定義了滑鼠按下事件和滑鼠移動事件。

例項實現乙個在桌面上顯示的可以拖拽的電子時鐘。

clock.h:基類選擇qdialog,在標頭檔案中將繼承關係改為qlcdnumber

#include 

#include

#include

#include

#include

#include

class

clock : public

qlcdnumber

;

clock.cpp:

#include "clock.h"

clock::clock(qwidget *parent)

: qlcdnumber(parent)

clock::~clock()

void clock::mousemoveevent(qmouseevent *event)

}void clock::mousepressevent(qmouseevent *event)

else

if (event->button() == qt::rightbutton)

}void clock::showtime()

else

// 將時間更新到窗體中

Qt學習筆記之QPalette調色盤類

qpalette通過獲取控制項或視窗的調色盤物件 palette 對該控制項或視窗進行色彩設定 可設定該widget不同狀態的色彩 colorgroup qpalette active 程式設計客棧 獲得焦點的狀態下 qpalette inactive未獲得焦點的狀態下 qpalette disab...

Qt學習筆記 調色盤類QPalette

類包含了 qt視窗不見的顏色組 collor group 1.active組,該組的顏色使用者當前活動的 active 視窗,即具有鍵盤或滑鼠焦點的視窗 2.inactive組,該組用語其他的視窗 3.disabled組,該組用語窗台為不可用的 disabled 的子視窗部件 不包含視窗 所有qt ...

Qt學習筆記 調色盤類QPalette

qpalette類包含了qt視窗不見的顏色組 collor group 1.active組,該組的顏色使用者當前活動的 active 視窗,即具有鍵盤或滑鼠焦點的視窗 2.inactive組,該組用語其他的視窗 3.disabled組,該組用語窗台為不可用的 disabled 的子視窗部件 不包含視...