1.QT學(xué)習(xí)

一、QT 知識學(xué)習(xí)https://qtguide.ustclug.org/

1..pro鏈接庫
2.QString:QString字符串操作
QTextStream配合字符串使用
賦值運算符 = 的隱式共享(Implicit Sharing

二、☆槽函數(shù) slots

文件結(jié)構(gòu)

槽函數(shù)使用步驟
1)widget.ui: 在控件欄拖入PushButton
2)widget.h:

public slots:       //槽函數(shù)聲明標(biāo)志
void FoodIsComing();    //槽函數(shù)

3)Widget.cpp:

//#1.槽函數(shù)定義代碼,與普通成員函數(shù)類似
void Widget::FoodIsComing()
{
    QMessageBox::information(this, tr("送餐"), tr("叮咚!外賣已送達"));
}

//#2.添加關(guān)聯(lián)代碼,必須放在 setupUi 函數(shù)之后
connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(FoodIsComing()));
☆connect()函數(shù)定義
1 自動關(guān)聯(lián):

優(yōu)點:不需要手動編寫 connect 函數(shù),通過自動命名槽函數(shù)的方式來編寫代碼。自動關(guān)聯(lián)的要求是槽函數(shù)根據(jù)源頭的對象名(指針)和其信號名稱來命名,元對象系統(tǒng)可以實現(xiàn)剩下的自動 connect 功能。
缺點:自動關(guān)聯(lián)一般用于一個窗體之內(nèi)的控件關(guān)聯(lián),其他很多情況都是需要手動編寫 connect 函數(shù)的,所以學(xué)習(xí) connect 函數(shù)的語法句式是必須的。


第二步是由 uic 和 moc 等工具自動完成的,在 Debug 文件夾里可以找到 ui_widget.h,最關(guān)鍵的就是 setupUi 函數(shù)末尾一句QMetaObject::connectSlotsByName(Widget);。

2 手動關(guān)聯(lián):

自動關(guān)聯(lián)一般用于一個窗體之內(nèi)的控件關(guān)聯(lián),其他很多情況都是需要手動編寫 connect 函數(shù)的,所以學(xué)習(xí) connect 函數(shù)的語法句式是必須的。


3 文本同步顯示:
源頭控件 lineEdit 信號和接收端控件 label 槽函數(shù) 均是 Qt 庫自帶的
4 自定義信號和槽:

emit SendMsg( tr("This is the message!") );
emit 是發(fā)信號的關(guān)鍵字,然后接下來就與調(diào)用函數(shù)是一樣的格式,SendMsg 里面放置我們想傳遞的字符串參數(shù)

發(fā)送自定義SendMsg信號

//③關(guān)聯(lián),信號里的字符串參數(shù)會自動傳遞給槽函數(shù)
    QObject::connect(&w, SIGNAL(SendMsg(QString)), &s, SLOT(RecvMsg(QString)));

自定義信號和槽 運行流程

復(fù)雜多窗口的界面程序,在多個窗體對象之間就可以用 上圖示范的流程,來進行通信、傳遞數(shù)據(jù)。

b. 關(guān)聯(lián)按鈕信號到自定義信號,再關(guān)聯(lián)到槽函數(shù)

//showmsg.cpp: 關(guān)聯(lián)按鈕信號到自定義的信號
    connect(ui->pushButton, SIGNAL(clicked()), this, SIGNAL(SendVoid()));

    //main.cpp: ③關(guān)聯(lián)源頭的信號和接收端的槽函數(shù)
    QObject::connect(&w, SIGNAL(SendVoid()), &s, SLOT(RecvVoid()));

三、問題解決:

  1. Qt在ubuntu無法輸入中文的解決

  2. QMessageBox顯示中文亂碼

  3. 在Linux中使用命令行啟動

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容