QT5 學習筆記一

2021-09-11 22:14:47 字數 3249 閱讀 6247

一、訊號和槽機制(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,也就是父物件指標。這相當於,在建立...