1:qt中訊號和槽有一種自動連線方式
void on__();
如果槽的命名是這樣的話:void on__();
就會自動將widget name中的訊號signal name和這個槽void on__()鏈結起來。
例如:void on_okbutton_clicked();系統就會自動將okbutton類中的訊號clicked和on_okbutton_clicked這個槽函式連線。
當你觸發okbutton類的clicked時,這個槽函式就進行處理(注意這個button圖示的object名字必須寫成okbutton,不是button圖示顯示的名字).
2: main_widget=new mainwidget(this)
main_widget=new mainwidget()
這兩種申請方式的區別。
例如:mainwindow::mainwindow(qwidget *parent) :
qmainwindow(parent),
ui(new ui::mainwindow)
(1)main_widget=new mainwidget(this)申請表明你通過建構函式傳遞引數,你所用的物件就是你傳遞過來的物件,在他的基礎上,新增main_widget所有的功能。
比如我已經在mainwindow
-》setui建構函式中已經豐富了widget的視窗,如果我以這種方式申請,我就是在mainwindow
-》setui
-》widget
的視窗的基礎上,加我main_widget所定義的視窗成員。
(2)main_widget=new mainwidget()
申請表明你會申請乙個新的物件類,可能和你的this(mainwindow
)有共同的繼承類,但是它是在新物件上進行的操作,你的mainwidget
是在你的新的物件類下新增它有的功能。
如果以new mainwidget()
方式,我就不是在mainwindow
-》setui
-》widget
的視窗的基礎上
,而是重新生成乙個widget,在我生成的空白的widget之下,新增我main_widget
所定義的視窗成員。
3: ui->setupui(this);
main_widget=new mainwidget(this);
mainwindow::setcentralwidget(main_widget);
main_widget->hide(); 和
ui->setupui(this);
main_widget=new mainwidget( );
mainwindow::setcentralwidget(main_widget);
main_widget->hide();
效果一樣,就是重新設定了centralwidget
,把ui->setupui中已經設定的centralwidget,覆蓋掉了。
ui->setupui(this);
main_widget=new mainwidget(this);
main_widget->hide();
這種方式,使得把ui->setupui(this)
中設定的centralwidget
和通過構造main_widget類,把兩個定義的widget視窗,都
設為mainwindow中的centralwidget
。所以看到的效果是兩個widget的重疊。如果這次想看到之中乙個可以main_widget->hide()另乙個,同樣想看到另乙個可以show這個,hide另外乙個
4:c++中一般對於有的函式引數在宣告的時候,就給出預設值,這樣,你可以在傳實參的時候,可以不給這個引數傳實參,它預設的就是你的預設值,也就不會出現編譯錯誤。如果不是這樣宣告的話,就必須給函式傳所有的實參,否則會提示編譯問題。
5:訊號和槽函式的定義,其函式引數一般要就一致(如果訊號函式沒有引數,一般要求相連的槽函式也不能有引數。如果訊號函式是某個型別的,相連的槽函式也是相應型別的),否則編譯時會提示接受者和傳送者引數衝突。
例如 connect: incompatible sender/receiver arguments
6:qt下寫有關socket通訊方面程式,應包含#include
但是make時出現 error: qtnetwork: no such file or directory
具體操作步驟如下
(1): qmake -project
(2): 手工新增 qt += network
(3): qmake
(4): make
7: qtextcodec::setcodecfortr(qtextcodec::codecforname("utf-8"));
一種提供輸出中文的方式,但是可能提供的字型檔不同,給codecforname提供的名字不同(utf-8
,gb2312等等)
所以有時開發過程中,會出現輸出中文亂碼,或者是輸出小框。大多都是提供的字型檔與你的輸入法不符。
qt程式設計問題雜談
1 乙個訊號可以連線多個槽,觸發一次訊號就發起了多個槽操作。2 qt下兩個執行緒之間可以用訊號和槽傳遞資料,但是當乙個執行緒一直迴圈執行,等待另乙個執行緒發來的資料的時候,當另乙個執行緒觸發了這個訊號時,如果這個執行緒一直輪循,其實屬於此執行緒的這個槽函式是不會被觸發的。3 qt下實現執行緒的函式是...
iphone開發雜談
很久沒看到這麼好的文章了,此文摘自stackoverflow的翻譯,獻給iphone開發的同仁們,同時也給自己做個筆記 192個加分的回答 有些初學時的做法,現在我認為是不標準的。2 說起來私有,我傾向於把似有方法定義在.m檔案裡,放在乙個私有的category內,如下 import myclass...
Qt雜談1 聊聊Qt官方認證
考試題目都是選擇題,不會讓你敲 啥的,嗯,就是這樣簡單高效。考試要點內容還是挺多的,這裡就不一一列出了,看官方的文件 文中提到,考試可以按任何順序進行,但在qt和qml基本考試通過之前,考生不能獲得任何乙個專家證書。因此,專家證書也需要qt和qml開發者證書。也就是說考試可以不分順序,但是你想拿專家...