您好,登錄后才能下訂單哦!
//——————————11.30——————————————
//由于緊急情況需要惡補(bǔ)C#, Qt的學(xué)習(xí)暫時(shí)中斷 (Π 。 Π)-~
——————————12.5——————————————---
回來(lái)了,繼續(xù)更新
一、復(fù)選框(CheckBox)
操作函數(shù):
bool isChecked() const; void setChecked(bool);
信號(hào):
void stateChanged(int state);
小練習(xí):
做如下界面,并實(shí)現(xiàn)這樣的邏輯:只有當(dāng)復(fù)選框“我接受”被選中時(shí),“繼續(xù)”按鈕才能被按下
1.設(shè)置事件響應(yīng),初始化一系列窗體(是否可按 在 QWidget類中::enabled)
2.設(shè)置、獲取CheckBox的值,判斷它是否被選中
3.處理“下一步”按鈕
Test5_1a_11_30::Test5_1a_11_30(QWidget *parent) : QMainWindow(parent) { ui.setupUi(this); assert( connect(ui.cbxAgree, SIGNAL(clicked(bool)), this, SLOT(OnBtnChecked()) ) ); //這里的參數(shù) 剛開(kāi)始學(xué)習(xí)一定要注意 } int Test5_1a_11_30::OnBtnChecked() { if (ui.cbxAgree->isChecked()) { ui.pushButton->setEnabled(true); } else { ui.pushButton->setEnabled(false); } return 0; }
二、單行文本框(QLineEdit)
小練習(xí):
構(gòu)造一個(gè)用戶登陸界面,輸入用戶名、密碼,點(diǎn)確定后檢查用戶名和密碼的正確性。
注意:密碼文本框輸入的內(nèi)容不希望顯示,因此需要設(shè)置一下 QLineEdit類中的echoMode屬性
Test5_2a_12_6::Test5_2a_12_6(QWidget *parent) : QMainWindow(parent) { ui.setupUi(this); assert( connect(ui.btnOk, SIGNAL(clicked()), this, SLOT(OnBtnOk())) ); } int Test5_2a_12_6::OnBtnOk() { if ("admin" == ui.editUser->text() && "passwd" == ui.editPswd->text()) { QMessageBox::information(this, "success", "next"); //提示框 } else { QMessageBox::information(this, "error", "try again"); //提示框 } }
做一個(gè)改進(jìn):在密碼輸入完后,按下回車,等同于按下按鈕:
Test5_2a_12_6::Test5_2a_12_6(QWidget *parent) : QMainWindow(parent) { ui.setupUi(this); assert( connect(ui.btnOk, SIGNAL(clicked()), this, SLOT(OnBtnOk())) ); assert( connect(ui.editPswd, SIGNAL(returnPressed()), this, SLOT(OnReturnPressed())) ); } int Test5_2a_12_6::OnBtnOk() { if ("admin" == ui.editUser->text() && "passwd" == ui.editPswd->text()) { QMessageBox::information(this, "success", "next"); //提示框 } else { QMessageBox::information(this, "error", "try again"); //提示框 } return 0; } int Test5_2a_12_6::OnReturnPressed() { OnBtnOk(); return 0; }
三、組合框(QComboBox)
組合框:
QComboBox是一個(gè)文本框和一個(gè)下拉列表的組合。
用戶從下拉列表里選擇一個(gè)值,被選擇的值顯示在文本框中。
組合框的初始化:
方式1:用Qt Designer,雙擊QComboBox控件,可視化操作
方式2:手動(dòng)初始化,在構(gòu)造函數(shù)中,用addItm()方法
設(shè)置關(guān)聯(lián)數(shù)據(jù):
在使用QComboBox時(shí),text是顯示給用戶看的,而程序內(nèi)部往往使用的是其關(guān)聯(lián)數(shù)據(jù)。
itemData() : 取得關(guān)聯(lián)數(shù)據(jù)
setItemData() : 設(shè)置關(guān)聯(lián)數(shù)據(jù)
示例:
Test5_3a_12_6::Test5_3a_12_6(QWidget *parent) : QMainWindow(parent) { ui.setupUi(this); //添加,設(shè)置關(guān)聯(lián) ui.comboBox->addItem("English", "en"); ui.comboBox->addItem("Chinese", "ch"); ui.comboBox->addItem("Japanese", "jp"); ui.comboBox->addItem("Germany", "gr"); assert( connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(OnBtnOk())) ); } int Test5_3a_12_6::OnBtnOk() { int index = ui.comboBox->currentIndex(); QString data = ui.comboBox->itemData(index).toString(); QString text = ui.comboBox->itemText(index); QMessageBox::information(this, "data", data); QMessageBox::information(this, "text", text); return 0; }
四、工具按鈕(QToolButton)
Qt提供了兩種按鈕控件:
QPushButton : 普通按鈕
QToolButton : 工具按鈕
有共同的基類:QAbstractButton
QToolButton有兩個(gè)屬性:
1、text文本
2、icon圖標(biāo)
關(guān)于icon圖標(biāo):
1、圖標(biāo)最好是 *.png格式,因?yàn)楸尘巴该?nbsp;
2、圖標(biāo)資源由 *.qrc文件定義,最終會(huì)被編入可執(zhí)行程序中
下載后的icon圖標(biāo)放到目錄下的 Resources路徑
(icon圖標(biāo)在編譯后,內(nèi)容會(huì)被寫入 *.qrc文件中,就在項(xiàng)目的根路徑下)
設(shè)置:
(PS:就是更漂亮的按鈕 (●ˇˇ●))
使用方法:
1、將icon圖標(biāo)添加到Recources路徑
2、在QT Disigner中的資源瀏覽器中添加
3、在QToolButton控件的icon屬性中,選擇剛剛添加的icon圖標(biāo)
4、可以在toolButtonStyle中設(shè)置圖標(biāo)和文本的顯示方式
接著再介紹幾個(gè)常用的QToolButton的屬性
autoRaise浮動(dòng)按鈕:
可以把QToolButton設(shè)置成浮動(dòng)的樣式,我認(rèn)為更好看喔
checkable可選擇模式:
把按鈕設(shè)置成 “按下/彈起”工作模式
五、QLabel顯示文字和圖片
1、背景色、前景色
2、字體及大小
3、對(duì)齊方式
4、是否換行
5、設(shè)置邊框
此外,QLabel還能用來(lái)顯示圖片,通常顯示一個(gè)Logo也是極好的.
使用入下:
____________________________________________
尾巴
這里介紹了幾個(gè)控件,每個(gè)控件都有大量的屬性和方法,以及對(duì)應(yīng)的事件。而我們不可能將它們完全記住,因此在開(kāi)發(fā)的過(guò)程中,查閱文檔挺重要的
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。