一、訊號和槽機制(signal&slot)
qt提供了訊號和槽機制用於完成介面操作的響應,是完成任意兩個qt物件之間的通訊機制。訊號會在某個特定情況或動作下被觸發,槽是等同於接收並處理訊號的函式。
※訊號與槽機制的連線方式
(1)乙個訊號可以與另乙個訊號相連;
(2)同乙個訊號可以與多個槽相連;
(3)同乙個槽可以響應多個訊號;
※常用的連線方式
connect(sender, signal(signal), receiver, slot(slot));
signal為物件sender的訊號,slot為物件receiver的槽。
eg.圓的半徑求面積
private:
qlabel *label1,*label2;
qlineedit *lineedit;
qpushbutton *button;
private slots:
/*自定義槽函式*/
void showarea();
label1=new qlabel(this);
label1->settext(tr("請輸入圓的半徑:"));
lineedit=new qlineedit(this);
label2=new qlabel(this);
button=new qpushbutton(this);
button->settext(tr("顯示對應圓的面積"));
qgridlayout *mainlayout=new qgridlayout(this);
mainlayout->addwidget(label1,0,0);
mainlayout->addwidget(lineedit,0,1);
mainlayout->addwidget(label2,1,0);
mainlayout->addwidget(button,1,1);
/*連線按鈕和槽函式*/
connect(button,signal(clicked()),this,slot(showarea()));
void circlearea::showarea()
二、正規表示式
使用使用正規表示式可以方便地完成處理字串的一些操作,如驗證、查詢、替換、分割等。
qt的qregexp類是正規表示式的表示類。
正規表示式由表示式(expressions)、量詞(quantifiers)、斷言(assertions)組成。
eg.登入(使用者名稱、密碼)
//使用者名稱、密碼輸入滿足條件
qregexp reg1("[a-za-z0-9]");//使用者名稱輸入條件需要滿足的正規表示式
lineedit1->setvalidator(new qregexpvalidator(reg1,this));
qregexp reg2("[a-za-z0-9]");//密碼輸入條件需要滿足的正規表示式
lineedit2->setvalidator(new qregexpvalidator(reg2,this));
/*qregexp類是正規表示式的表示類*/
if((qregexp(reg1).exactmatch(lineedit1->text()))&&(qregexp(reg2).exactmatch(lineedit2->text())))
else
三、布局管理
qt提供了qhboxlayout類、qvboxlayout類及qgridlayout類等的基本布局管理,分別是水平排列布局、垂直排列布局和網格排列布局。
QT5 學習筆記01
第乙個例項,計算圓的面積 利用qt5 designer實現 第一次例項比較簡單,掌握建立專案的方法以及槽函式的用法即可。使用到的常用函式 1 qstring toint bool ok nullptr,int base 10 第一引數為ok位址,表明轉換成功與否,第二個引數進製 123 123 2 ...
QT5 學習筆記02
第二個例項,計算圓的面積 利用 實現 建立專案時不選擇建立介面選項 建立好後專案中不含有ui designer 物件的位置用布局管理器控制 如 qgridlayout mainlayout 關於槽的相關資料 主視窗中的 如下 include dialog.h include qgridlayout ...
QT5學習筆記(3 2) QT物件模型
在qt中建立物件的時候會提供乙個parent物件指標,下面來解釋這個parent到底是幹什麼的。qobject是以物件樹的形式組織起來的。當你建立乙個qobject物件時,會看到qobject的建構函式接收乙個qobject指標作為引數,這個引數就是 parent,也就是父物件指標。這相當於,在建立...