欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

柚子快報(bào)邀請(qǐng)碼778899分享:c++ 【QT】常用控件(一)

柚子快報(bào)邀請(qǐng)碼778899分享:c++ 【QT】常用控件(一)

http://yzkb.51969.com/

個(gè)人主頁(yè)~

常用控件

一、控件是什么二、QWidget核心屬性1、enabled2、geometry3、windowTitle4、windowIcon5、windowOpacity6、cursor7、font8、toolTip9、focusPolicy10、styleSheet

一、控件是什么

ui設(shè)計(jì)界面左邊的這些都叫控件,除了這些以外,QT還允許自定義控件,滿足不同的需求

二、QWidget核心屬性

1、enabled

API說(shuō)明isEnabled獲取到控件的可用狀態(tài)setEnabled設(shè)置控件是否可用

我們來(lái)寫(xiě)一個(gè)用一個(gè)按鈕控制另一個(gè)按鈕可用狀態(tài)的QT程序

我比較喜歡用ui界面轉(zhuǎn)到槽的方式寫(xiě)QT程序

#include "widget.h"

#include "ui_widget.h"

#include

Widget::Widget(QWidget *parent)

: QWidget(parent)

, ui(new Ui::Widget)

{

ui->setupUi(this);

}

Widget::~Widget()

{

delete ui;

}

void Widget::on_pushButton_control_clicked()

{

if(ui->pushButton->isEnabled() == true)

ui->pushButton->setEnabled(false);

else

ui->pushButton->setEnabled(true);

}

void Widget::on_pushButton_clicked()

{

qDebug() << "可以使用";

}

當(dāng)將控件設(shè)置為不可用時(shí),顏色偏暗淡,不可點(diǎn)擊

enabled

2、geometry

API說(shuō)明geometry()獲取到控件的位置和尺寸,返回的結(jié)果是QRect,包含x,y,width,height,其中x和y是左上角坐標(biāo)setGeometry(QRect) / setGeometry(int x,int y,int width,int height)設(shè)置空間的位置和尺寸,分為兩種方式

geometry在中文里是幾何的意思,表示一個(gè)物體的幾何性質(zhì),它有四個(gè)參數(shù)以表示空間的幾何性質(zhì),左上角的坐標(biāo)x,y以及控件的寬度和高度

geometry_1

geometry_2

第一個(gè)視頻僅控制左上角坐標(biāo),這樣會(huì)導(dǎo)致width和height跟著變化,因?yàn)槲覀冇玫氖莝etX和setY,強(qiáng)制改變了左上角坐標(biāo) 第二個(gè)視頻的效果也可以直接使用move函數(shù)進(jìn)行控制

這里還有一個(gè)有趣的程序

#include "widget.h"

#include "ui_widget.h"

Widget::Widget(QWidget *parent)

: QWidget(parent)

, ui(new Ui::Widget)

{

ui->setupUi(this);

}

Widget::~Widget()

{

delete ui;

}

void Widget::on_pushButton_clicked()

{

ui->label->setText("感謝導(dǎo)員,我出去玩了");

}

void Widget::on_pushButton_2_clicked()

{

int width = this->geometry().width();

//獲取窗口寬度

int height = this->geometry().height();

//獲取窗口高度

int x = rand() % width;

int y = rand() % height;

//保證按鈕在窗口內(nèi)

//這里用的move

ui->pushButton_2->move(x, y);

}

geometry_3

我們知道,窗口都會(huì)帶有下面紅色方框中的內(nèi)容,這個(gè)東西叫做window frame,我們?cè)谑褂胓eometry的時(shí)候的x,y是不包含這個(gè)的,要想使用window frame的左上角就要用frameGeometry這個(gè)函數(shù) 通過(guò)geometry和frameGeometry就可以實(shí)現(xiàn)整個(gè)窗口以及控件的移動(dòng)操作,但是我們有很多的API,雖然設(shè)計(jì)的比較冗余,但是QT一個(gè)特點(diǎn)就是盡量符合人的直覺(jué),就是我們有可能不用通過(guò)官方文檔就能把程序?qū)憣?duì)

3、windowTitle

API說(shuō)明windowTitle獲取到控件的窗口標(biāo)題setWindowTitle(const QString& title)設(shè)置控件的窗口標(biāo)題

4、windowIcon

API說(shuō)明windowIcon()獲取到控件的窗口圖標(biāo),返回QIcon對(duì)象setWindowIcon(const QIcon& icon)設(shè)置控件的窗口圖標(biāo)

窗口和任務(wù)欄圖標(biāo)都會(huì)變成設(shè)置成的照片

但是我們一般不會(huì)通過(guò)文件的絕對(duì)路徑引入照片,因?yàn)槲覀儫o(wú)法保證我D盤(pán)中的圖片在你的D盤(pán)當(dāng)中也有,我們還有兩種辦法,一種是相對(duì)路徑,另一種是使用qrc,相對(duì)路徑的方法就是在該項(xiàng)目的工作目錄中建一個(gè)新的文件夾用來(lái)專門(mén)存放圖片,比如文件夾的名字叫做photo,當(dāng)我們需要使用時(shí)寫(xiě)"./photo/slm.jpg",但是這樣的話還是會(huì)因?yàn)橛脩粽`刪而導(dǎo)致照片無(wú)法使用,這時(shí)對(duì)于這種圖片一類的小文件,我們可以使用qrc來(lái)直接將圖片轉(zhuǎn)化為二進(jìn)制代碼存儲(chǔ)在項(xiàng)目當(dāng)中,這樣就永遠(yuǎn)不會(huì)丟失了

右鍵點(diǎn)擊Add New,選擇Qt resource file,起一個(gè)英文名字,這里叫resource file

點(diǎn)擊Add Prefix,將前綴改為/ 然后點(diǎn)擊Add Files,將要加入的圖片放到qrc文件的同級(jí)目錄中,下面是添加完畢的效果 在代碼中這樣使用: 這里的 : 作為開(kāi)頭,表示從qrc中讀取資源 這里的 / 是上面配置的前綴 這里的 slm.jpg 是資源名稱

qrc適合管理小的資源,對(duì)圖片類的很有效,不過(guò)對(duì)于視頻一類的大資源是不行的,因?yàn)檫@會(huì)導(dǎo)致exe文件也變大

5、windowOpacity

API說(shuō)明windowOpacity()獲取到控件的不透明數(shù)值,返回float,取值為0.0~1.0,0.0表示透明,1.0表示完全不透明setWindowOpacity(float n)設(shè)置控件的不透明數(shù)值

opacity_1

6、cursor

API說(shuō)明cursor()獲取到當(dāng)前widget的cursor屬性,返回QCursor對(duì)象,當(dāng)鼠標(biāo)懸停在該widget上時(shí),就會(huì)顯示出對(duì)應(yīng)的形狀setCursor(const QCursor& cursor)設(shè)置該widget光標(biāo)的形狀,僅在鼠標(biāo)停留在該widget上時(shí)生效QGuiApplication::setOverrideCursor(const QCursor& cursor)設(shè)置全局光標(biāo)的形狀,對(duì)整個(gè)程序中的所有widget都會(huì)生效,覆蓋上面的setCursor設(shè)置的內(nèi)容

我們可以直接通過(guò)屬性欄來(lái)控制,也可以使用代碼控制

cursor_1

代碼版本:

cursor_2

這是系統(tǒng)內(nèi)置的所有光標(biāo)形狀,是以一個(gè)枚舉體來(lái)存儲(chǔ)的 我們來(lái)將光標(biāo)改變?yōu)樽远x圖片

首先使用qrc將圖片加載進(jìn)去,步驟如同上文,不再贅述,然后定義一個(gè)位圖對(duì)象加載并縮放圖片,然后將圖片設(shè)置為光標(biāo)形狀

#include "widget.h"

#include "ui_widget.h"

Widget::Widget(QWidget *parent)

: QWidget(parent)

, ui(new Ui::Widget)

{

ui->setupUi(this);

QPixmap pixmap(":/slm.jpg");//創(chuàng)建位圖對(duì)象并加載自定義圖片

pixmap = pixmap.scaled(32,32);//縮放圖片為32*32

QCursor cursor(pixmap,3,3);//這里的3,3是熱點(diǎn)的位置,也就是點(diǎn)擊時(shí)的有效位置

this->setCursor(cursor);

}

Widget::~Widget()

{

delete ui;

}

cursor

7、font

API說(shuō)明font()獲取當(dāng)前widget的字體信息,返回QFont對(duì)象setFont(const QFont& font)設(shè)置當(dāng)前widget字體信息

這里的QFont有七種屬性 family:字體 pointSize:字體大小 weight:字體粗細(xì) bold:是否加粗 italic:是否傾斜 underline:是否有下劃線 strikeOut:是否有刪除線

我們可以通過(guò)屬性面板直接設(shè)置 也可以通過(guò)代碼和ui一起實(shí)現(xiàn)

8、toolTip

API說(shuō)明setToolTip設(shè)置toolTip,鼠標(biāo)懸停時(shí)會(huì)有提示說(shuō)明setToolTipDuring設(shè)置toolTip提示的時(shí)間

toolTip

9、focusPolicy

API說(shuō)明focusPolicy()獲取該widget的focusPolicy,返回Qt::FocusPolicysetFocusPolicy(Qt::FocusPolicy)設(shè)置widget的focusPolicy

Qt::FocusPolicy是一個(gè)枚舉類型,取值如下

enum FocusPolicy {

NoFocus = 0,//控件不會(huì)接收鍵盤(pán)焦點(diǎn)

TabFocus = 0x1,//控件可以通過(guò)Tab鍵接收焦點(diǎn)

ClickFocus = 0x2,//控件在鼠標(biāo)點(diǎn)擊時(shí)接收焦點(diǎn)

StrongFocus = TabFocus | ClickFocus | 0x8,//控件可以通過(guò)Tab鍵和鼠標(biāo)點(diǎn)擊接收焦點(diǎn)(默認(rèn))

WheelFocus = StrongFocus | 0x4//在上一條的基礎(chǔ)上增加鼠標(biāo)滾輪獲取焦點(diǎn)

};

這個(gè)就不必多說(shuō)了,只要是平常玩玩電腦的看完這些解釋都就知道這個(gè)焦點(diǎn)的概念,雖然不好說(shuō)出來(lái),但是抽象的概念大家都是有的,當(dāng)我們給控件設(shè)置這些枚舉值時(shí)會(huì)達(dá)到對(duì)應(yīng)的效果

10、styleSheet

通過(guò)QSS設(shè)置widget的樣式,QSS是QT借鑒CSS的,只支持CSS其中的一部分 當(dāng)然這里的color不是只有我們認(rèn)識(shí)的那幾個(gè)單詞的顏色,自然界的顏色有無(wú)數(shù)種,在計(jì)算機(jī)中,顏色是由一個(gè)個(gè)像素光點(diǎn)顯示的,它通過(guò)RGB,也就是red,green,blue三種顏色的深淺來(lái)控制可以形成所有的顏色,對(duì)于8位深度的顯示器來(lái)說(shuō),它們每一個(gè)顏色深度都是由一個(gè)字節(jié)來(lái)存儲(chǔ)的,也就是說(shuō)電腦能夠呈現(xiàn)的顏色有256256256種,也就是1600多萬(wàn)種,對(duì)于更高規(guī)格的顯示器這個(gè)數(shù)字會(huì)更多

今日分享就到這~

柚子快報(bào)邀請(qǐng)碼778899分享:c++ 【QT】常用控件(一)

http://yzkb.51969.com/

推薦鏈接

評(píng)論可見(jiàn),查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19570244.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問(wèn)

文章目錄