九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
<QT>常見(jiàn)錯(cuò)誤總結(jié)
1,./ui_logindialog.h:150: error: 'class QLineEdit'has no member named 'setPlaceholderText'
./ui_logindialog.h:151: error: 'class QLineEdit'has no member named 'setPlaceholderText'
./ui_logindialog.h:155: error: 'class QLineEdit'has no member named 'setPlaceholderText'
其原因是例子中用的庫(kù)是4.8.1,而我電腦中的是4.5.1,
4.7.1版本之前的庫(kù)都沒(méi)有setPlaceholderText,換庫(kù)就能解決?;蛘咧苯訔5粝嚓P(guān)的代碼就ok
2,
make: Entering directory`/sda6-112G-data/qt-space/login/login-build-desktop-Desktop_Qt_4_8_1_for_GCC__Qt_SDK____'
g++ -c -pipe -O2 -Wall -W -D_REENTRANT-DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED-I/opt/QtSDK/Desktop/Qt/4.8.1/gcc/mkspecs/linux-g++ -I../login-I/opt/QtSDK/Desktop/Qt/4.8.1/gcc/include/QtCore-I/opt/QtSDK/Desktop/Qt/4.8.1/gcc/include/QtGui-I/opt/QtSDK/Desktop/Qt/4.8.1/gcc/include -I. -I. -I../login -I. -omythreadtest.o ../login/mythreadtest.cpp
In fileincluded from/usr/lib/gcc/x86_64-neokylin-linux/4.4.5/../../../../include/c++/4.4.5/thread:35,
from../login/mythreadtest.cpp:5:
/usr/lib/gcc/x86_64-neokylin-linux/4.4.5/../../../../include/c++/4.4.5/c++0x_warning.h:31:2:error: #error This file requires compiler and library support forthe upcoming ISO C++ standard, C++0x. This support is currentlyexperimental, and must be enabled with the -std=c++0x or-std=gnu++0x compiler options.
make: ***[mythreadtest.o] Error 1
make: Leaving directory`/sda6-112G-data/qt-space/login/login-build-desktop-Desktop_Qt_4_8_1_for_GCC__Qt_SDK____'
17:49:39:進(jìn)程"/usr/bin/make"退出,退出代碼 2 。
構(gòu)建項(xiàng)目login時(shí)發(fā)生錯(cuò)誤 (目標(biāo): 桌面)
當(dāng)執(zhí)行構(gòu)建步驟'Make'時(shí)
什么情況???????
3,
犀利的link錯(cuò)誤 undefined reference to vtable for xxxx
原來(lái)我沒(méi)有實(shí)現(xiàn)虛函數(shù),原來(lái)的代碼為
undefined reference to vtable for MyThread
~MyThread();            改為             ~MyThred() {} 就OK了,果然很犀利。
還奉送另一個(gè)錯(cuò)誤吧。
undefined reference to MyThred::mutex
原來(lái)是犀利的 靜態(tài)變量沒(méi)有初始化?。?div style="height:15px;">
在xxx.cpp中初始化就OK了 wxMutex CThread::mutex;
4,將qt工程移到其他機(jī)器上,有如下報(bào)錯(cuò),各種郁悶了
[root@login-build-desktop-Desktop_Qt_4_8_1_for_GCC__Qt_SDK____]#./login
./login: symbol lookup error: ./login:undefined symbol:_ZN9QLineEdit18setPlaceholderTextERK7QString
應(yīng)該是qt版本太高,被移植的電腦qt版本低
工程下邊還有個(gè)目錄,調(diào)試下那個(gè)就ok了
5,
QWidget:Must construct a QApplication before a QPaintDevice
程序異常終止。
錯(cuò)誤的原因是:創(chuàng)建對(duì)象的位置錯(cuò)誤
6,
make: Nothing to be done for`first'
在qt工程目錄mysql111中(包含main.cpp,mysql111.pro等的目錄)
執(zhí)行命令 qmake "INCLUDEPATH+=/usr/include/mysql""LIBS+=-L/usr/lib/mysql -lmysqlclient_r" mysql11.pro
后,再make; 報(bào)錯(cuò)
解決辦法:#rm -rf *.o
7.
8.
總結(jié)系列_13(Qt使用總結(jié),續(xù)...)
QtCreator中使用的是MinGW進(jìn)行編譯的,所以在windows下如果想要下載QtCreator就需要下載對(duì)應(yīng)mingw的版本,而不是vs的,否則是編譯不了的?;蛘咦约合螺dQt源碼庫(kù),用Cmake中選中MinGW重新編譯即可。
所以如果安裝Qt libraries4.8.2 for Windows (minGW 4.4, 318MB),則必須先安裝QtCreator,因?yàn)镼tCreator安裝過(guò)程中會(huì)自動(dòng)安裝MinGW,而Qt libraries4.8.2 for Windows (minGW 4.4, 318MB)的安裝又必須使用MinGW。因此這2者的順序不可顛倒。
但是自從QtCreator2.5.0以后,就不再捆綁MinGW了,需要用戶(hù)自行下載安裝。Qt官網(wǎng)給出的下載地址為ftp://ftp.qt.nokia.com/misc/MinGW-gcc440_1.zip.
當(dāng)然我們也可以用VS的編譯器進(jìn)行編譯,這樣裝了微軟的VS后我們?cè)赒tCreator中設(shè)置好微軟的編譯器目錄,然后在QtCreator中進(jìn)行編寫(xiě)代碼,編譯調(diào)試等.
在用微軟的調(diào)試器時(shí)可以裝一個(gè)dbg_x86_6.11.1.404.msi,裝完后QtCreator會(huì)自動(dòng)識(shí)別這個(gè)dbg調(diào)試器的.
Qt中用來(lái)顯示圖片的控件為L(zhǎng)abel后者用TextBrowser.當(dāng)用Label顯示時(shí),需要用setPixmap函數(shù),且該函數(shù)對(duì)應(yīng)傳入與圖像相關(guān)的參數(shù)為圖像的數(shù)據(jù)部分;當(dāng)用TextBrowser顯示時(shí),直接用append函數(shù)即可。該函數(shù)對(duì)應(yīng)傳入與圖像相關(guān)的參數(shù)為圖像的文件名(要包含路徑)。
顯示文本的控件為T(mén)extBrowser.
獲得spinBox的值是調(diào)用其value()函數(shù)。
獲得LineEdit的值是調(diào)用其text()函數(shù),然后轉(zhuǎn)換成相應(yīng)的數(shù)據(jù)類(lèi)型即可。
10.ui中的close函數(shù)只是關(guān)閉窗口的顯示功能而已,并沒(méi)有delete掉里面的變量。
11.QPalette為調(diào)色版,其顏色組分為3組,活動(dòng)組,非活動(dòng)組,
12.可用組;其中活動(dòng)組為當(dāng)前窗口所在組,非活動(dòng)組為其它窗口所在組,不可用組是由于某種原因暫時(shí)不能使用的組。改變調(diào)色版的顏色可以使用setColor這個(gè)函數(shù),這個(gè)函數(shù)有2個(gè)重載函數(shù),其中參數(shù)ColorRole表示是更改哪個(gè)參數(shù);比如說(shuō)一般的背景色。
13.EditLine背景色顏色角色為QPalette::Base;前景色文字的顏色角色為QPalette::Text.
14.Button背景色顏色角色為QPalette::Button.前景色文字的顏色角色為QPalette::ButtonText.
15.Label前景文字顏色角色為QPalette::WindowText.
16.當(dāng)在TextBrowser中進(jìn)行圖片顯示時(shí),如果需要讓顯示圖片的窗口自適應(yīng)圖片的大小,可采用QTextBrowser下的setFixedWidth()和setFixedHeight()函數(shù)來(lái)設(shè)置窗口尺寸,其參數(shù)是從圖片中獲取。當(dāng)然這個(gè)設(shè)置的窗口長(zhǎng)和寬已經(jīng)包括了右邊和下邊的滾動(dòng)條,所以給參數(shù)的時(shí)候需要把這2者考慮進(jìn)去。
17.要對(duì)整個(gè)窗口的背景該色,且不改變其上面控件的背景色,則這時(shí)需用QPalette類(lèi)。且時(shí)需用Window作為背景色角色;如果用Base作為背景色角色的話(huà),那么它只會(huì)改變QTextEidt類(lèi)及其派生類(lèi)的背景色;如果用seStyleSheet,其用background-color的話(huà),那么它會(huì)把其上面的控件背景色全改了,且相應(yīng)的子窗口的也都改了。
18.在Qt中,將1個(gè)數(shù)值a轉(zhuǎn)換成文本,可采用,tr(“%1”).arg(a).也可采用QString::number(a).
19.實(shí)際運(yùn)行到這幾句代碼時(shí),并不是顯示完first,延時(shí)1s后顯示second,再延時(shí)1s后顯示third. 而是直接延時(shí)2秒,first,second,third同時(shí)顯示呢?
20.其原因在主線(xiàn)程GUI中不宜采用sleep()等函數(shù),否則會(huì)出現(xiàn)意想不到的結(jié)果。
21.如果需要延時(shí),#include<QElapsedTimer>后,可以用下面的代碼(比如說(shuō)延時(shí)1s):
22.QtCreator中使用的是MinGW進(jìn)行編譯的,所以在windows下如果想要下載QtCreator就需要下載對(duì)應(yīng)mingw的版本,而不是vs的,否則是編譯不了的?;蛘咦约合螺dQt源碼庫(kù),用Cmake中選中MinGW重新編譯即可。
23. 所以如果安裝Qt libraries4.8.2 for Windows (minGW 4.4, 318MB),則必須先安裝QtCreator,因?yàn)镼tCreator安裝過(guò)程中會(huì)自動(dòng)安裝MinGW,而Qt libraries4.8.2 for Windows (minGW 4.4, 318MB)的安裝又必須使用MinGW。因此這2者的順序不可顛倒。
24.但是自從QtCreator2.5.0以后,就不再捆綁MinGW了,需要用戶(hù)自行下載安裝。Qt官網(wǎng)給出的下載地址為ftp://ftp.qt.nokia.com/misc/MinGW-gcc440_1.zip.
25.當(dāng)然我們也可以用VS的編譯器進(jìn)行編譯,這樣裝了微軟的VS后我們?cè)赒tCreator中設(shè)置好微軟的編譯器目錄,然后在QtCreator中進(jìn)行編寫(xiě)代碼,編譯調(diào)試等.
26.在用微軟的調(diào)試器時(shí)可以裝一個(gè)dbg_x86_6.11.1.404.msi,裝完后QtCreator會(huì)自動(dòng)識(shí)別這個(gè)dbg調(diào)試器的.
27.Qt中用來(lái)顯示圖片的控件為L(zhǎng)abel后者用TextBrowser.當(dāng)用Label顯示時(shí),需要用setPixmap函數(shù),且該函數(shù)對(duì)應(yīng)傳入與圖像相關(guān)的參數(shù)為圖像的數(shù)據(jù)部分;當(dāng)用TextBrowser顯示時(shí),直接用append函數(shù)即可。該函數(shù)對(duì)應(yīng)傳入與圖像相關(guān)的參數(shù)為圖像的文件名(要包含路徑)。
28. 顯示文本的控件為T(mén)extBrowser.
29. 獲得spinBox的值是調(diào)用其value()函數(shù)。
30.獲得LineEdit的值是調(diào)用其text()函數(shù),然后轉(zhuǎn)換成相應(yīng)的數(shù)據(jù)類(lèi)型即可。
31.ui中的close函數(shù)只是關(guān)閉窗口的顯示功能而已,并沒(méi)有delete掉里面的變量。
32.QPalette為調(diào)色版,其顏色組分為3組,活動(dòng)組,非活動(dòng)組,
33.可用組;其中活動(dòng)組為當(dāng)前窗口所在組,非活動(dòng)組為其它窗口所在組,不可用組是由于某種原因暫時(shí)不能使用的組。改變調(diào)色版的顏色可以使用setColor這個(gè)函數(shù),這個(gè)函數(shù)有2個(gè)重載函數(shù),其中參數(shù)ColorRole表示是更改哪個(gè)參數(shù);比如說(shuō)一般的背景色。
34.EditLine背景色顏色角色為QPalette::Base;前景色文字的顏色角色為QPalette::Text.
35.Button背景色顏色角色為QPalette::Button.前景色文字的顏色角色為QPalette::ButtonText.
36.Label前景文字顏色角色為QPalette::WindowText.
37.當(dāng)在TextBrowser中進(jìn)行圖片顯示時(shí),如果需要讓顯示圖片的窗口自適應(yīng)圖片的大小,可采用QTextBrowser下的setFixedWidth()和setFixedHeight()函數(shù)來(lái)設(shè)置窗口尺寸,其參數(shù)是從圖片中獲取。當(dāng)然這個(gè)設(shè)置的窗口長(zhǎng)和寬已經(jīng)包括了右邊和下邊的滾動(dòng)條,所以給參數(shù)的時(shí)候需要把這2者考慮進(jìn)去。
38.要對(duì)整個(gè)窗口的背景該色,且不改變其上面控件的背景色,則這時(shí)需用QPalette類(lèi)。且時(shí)需用Window作為背景色角色;如果用Base作為背景色角色的話(huà),那么它只會(huì)改變QTextEidt類(lèi)及其派生類(lèi)的背景色;如果用seStyleSheet,其用background-color的話(huà),那么它會(huì)把其上面的控件背景色全改了,且相應(yīng)的子窗口的也都改了。
39.在Qt中,將1個(gè)數(shù)值a轉(zhuǎn)換成文本,可采用,tr(“%1”).arg(a).也可采用QString::number(a).
40. Qtimer::singleShot(0, this,SLOT(event()));
41.其中第一個(gè)參數(shù)為時(shí)隔多長(zhǎng)(單位為ms)執(zhí)行后面的event信號(hào)函數(shù),當(dāng)然該函數(shù)的函數(shù)名可以自己定義。這句代碼的意思是立即執(zhí)行執(zhí)行event()函數(shù)。和sleep()函數(shù)一樣,在Qt中也不能用opencv中的waitKey()函數(shù)來(lái)進(jìn)行延時(shí)。
42. 用QTCreater編程,如果沒(méi)有自動(dòng)補(bǔ)全是很痛苦的事情,于是便查閱了QT的文檔,發(fā)現(xiàn)CTRL+SPACE是自動(dòng)補(bǔ)全的快捷鍵;
但是在 Creater里使用居然沒(méi)有效果,估計(jì)是輸入法切換的沖突(CTRL+SPACE是我中英文輸入的默認(rèn)快捷鍵)
于是尋求解決方法,在QTCreater->Tools->Options...里找到environment->Keyboard,發(fā)現(xiàn)TextEditor.CompleteThis命令,其快捷鍵是Ctrl+Space;將其result掉,然后輸入Alt+/(Eclipse里習(xí)慣的~~)后應(yīng)用退出即可.
43.要達(dá)到像vs一樣在終端(單獨(dú)的終端)輸出想調(diào)試的各種信息,不是采用cout,而是采用qDebug()<<”xxx”;
44.如果菜單下的action不能夠運(yùn)動(dòng)到toolbar上,則在toolbar上右擊,選擇separatetoolbar,然后移動(dòng)即可。
45.setCentralWidget()函數(shù)是把控件布滿(mǎn)整個(gè)界面的語(yǔ)句。
46.在Qt程序其中的一個(gè)函數(shù)中,如果需要調(diào)用另一個(gè)窗口類(lèi)且顯示出來(lái),則有2種方法。其一是在本類(lèi)中定義一個(gè)全局變量,然后在這個(gè)函數(shù)中new一個(gè)對(duì)象。如下所示:
voidMainWindow::on_actionNew_Window_triggered()
{
my_dailog = new Dialog(this);
my_dailog->show();
}
這種情況下建立的窗口時(shí)非模態(tài)的,且可以同時(shí)調(diào)出多個(gè)my_dialog窗口來(lái)。
另外一種方法是在程序內(nèi)部定義一個(gè)類(lèi)對(duì)象,如下所示:
voidMainWindow::on_actionNew_Window_triggered()
{
Dialog my_dialog;
my_dialog.setModal(false);
my_dialog.exec();
}
但是不管其模態(tài)設(shè)置是否為true,該窗口都是模態(tài)的,即該窗口顯示出來(lái)時(shí)其它的窗口不能工作了。當(dāng)然此時(shí)只能顯示1個(gè)my_dialog了。
47.Qt中的label控件對(duì)應(yīng)android中的是TextView控件。
48.如果想要窗口內(nèi)部的控件大小隨著窗口拉伸等變化而變化,則需要在布局中設(shè)置,點(diǎn)擊ui文件中的主體,然后選擇布局控件中滿(mǎn)足自己需求的一個(gè)即可。
49.window下的路徑名需要用2個(gè)左斜杠或者1個(gè)右斜桿。即”/”或者””。
50.在界面中設(shè)置顯示的文字屬性,如果在cpp中被重新設(shè)置了,那么運(yùn)行時(shí)是以cpp中設(shè)置的最后的設(shè)置,因?yàn)檫@些屬性被覆蓋掉了.
51. 在QtDesigner界面設(shè)計(jì)中,label中顯示的內(nèi)容各種屬性都可以設(shè)置,比如字體格式,顏色等.但是PushButton中顯示的字體在屬性欄就只能更改其內(nèi)容。如果要更改其它屬性則需要在代碼中實(shí)現(xiàn)。
52.一般信號(hào)中的toggled是指對(duì)應(yīng)的屬性為checkable,然后被鼠標(biāo)單擊了下而發(fā)射的。這個(gè)在復(fù)選按鈕和單選按鈕中比較常見(jiàn),但是在PushButton中也是可以用的,將PushButton的屬性checkable設(shè)置為真,則運(yùn)行時(shí)鼠標(biāo)單擊一下,按鈕的顏色會(huì)變淡,再單擊一下又會(huì)變亮,它是以顏色的的深淺來(lái)提醒它的toggle的。
菜單欄中的一個(gè)選項(xiàng),一般是用trigger來(lái)發(fā)射信號(hào)。
53.Qt的MessageBox中比較常用的是,MessageBox::warning(),MessageBox::information,MessageBox:YES等。
54.在LineEdit中有一個(gè)echoMode,里面可以選中password模式,則在LineEdit中輸入的內(nèi)容對(duì)用戶(hù)是不可見(jiàn)的,當(dāng)然對(duì)系統(tǒng)是可見(jiàn)的,我們可以將其內(nèi)容讀取出來(lái)。
55. CmoboBox中增加一項(xiàng)用的是addItem()函數(shù)。例如:
ui->comboBox->addItem("China");
56.Qt中QListView是基于Model的,QListWidget是基于Item的。
57.如果是用QListWidget的話(huà),加入內(nèi)容采用的是addItem()方法。
58.頭文件和對(duì)應(yīng)的源文件可以同時(shí)include同一個(gè)頭文件。
59.用滑動(dòng)條觸發(fā)進(jìn)度條的實(shí)驗(yàn)中,至少有下面3種方法可以執(zhí)行。
可以直接在界面設(shè)計(jì)的信號(hào)與槽中連接好對(duì)應(yīng)的信號(hào)與槽。無(wú)需任何代碼。
在界面的構(gòu)造函數(shù)中用connect函數(shù)連接好信號(hào)與槽,也無(wú)需其他代碼。如下:
connect(ui->horizontalSlider,SIGNAL(valueChanged(int)), ui->progressBar,SLOT(setValue(int)));
可以在滑動(dòng)條值改變的槽函數(shù)中實(shí)現(xiàn),如下:
voidDialog::on_horizontalSlider_valueChanged(int value)
{
ui->progressBar->setValue(ui->horizontalSlider->value());
}
60.讓狀態(tài)欄顯示文本不是采用setText()方法,而是采用showMessage().其第二個(gè)參數(shù)為顯示該內(nèi)容持續(xù)的時(shí)間,以毫秒為單位。
61. 如果在QtCreator中需要帶參數(shù)運(yùn)行,因?yàn)樵趍ain函數(shù)中經(jīng)常有argv這個(gè)變量傳入?yún)?shù),這可以在QtCreator的左側(cè)Project一欄中—>Targets—>Desttop(中間偏上的位置)—>Run    —>Arguments中輸入需要附加的參數(shù)即可。
62.QtextEdit除了用append()函數(shù)顯示圖片外,還可以用insertHtml()函數(shù)和setPlainText()來(lái)顯示,用法類(lèi)似,其中insertHtml()可以用來(lái)顯示圖片和有格式的文字,而setPlainText()只能用來(lái)顯示無(wú)格式的文字。
63. QtGui界面的顯示是在程序的構(gòu)造函數(shù)執(zhí)行完后完成的,所以如果在構(gòu)造函數(shù)中對(duì)界面有動(dòng)態(tài)的輸出效果我們是看不到的,只能都構(gòu)造函數(shù)執(zhí)行完了后才能看到最后的結(jié)果。那么怎么辦才能做到在構(gòu)造函數(shù)結(jié)束時(shí)自動(dòng)調(diào)用某一程序來(lái)完成我們想要看到的動(dòng)態(tài)初始化效果呢?這里可以使用QTimer下的singleShot()函數(shù)。
64. Qtimer::singleShot(0, this,SLOT(event()));
65.其中第一個(gè)參數(shù)為時(shí)隔多長(zhǎng)(單位為ms)執(zhí)行后面的event信號(hào)函數(shù),當(dāng)然該函數(shù)的函數(shù)名可以自己定義。這句代碼的意思是立即執(zhí)行執(zhí)行event()函數(shù)。
和sleep()函數(shù)一樣,在Qt中也不能用opencv中的waitKey()函數(shù)來(lái)進(jìn)行延時(shí)。
66. 用QTCreater編程,如果沒(méi)有自動(dòng)補(bǔ)全是很痛苦的事情,于是便查閱了QT的文檔,發(fā)現(xiàn)CTRL+SPACE是自動(dòng)補(bǔ)全的快捷鍵;
但是在 Creater里使用居然沒(méi)有效果,估計(jì)是輸入法切換的沖突(CTRL+SPACE是我中英文輸入的默認(rèn)快捷鍵)
于是尋求解決方法,在QTCreater->Tools->Options...里找到environment->Keyboard,發(fā)現(xiàn)TextEditor.CompleteThis命令,其快捷鍵是Ctrl+Space;將其result掉,然后輸入Alt+/(Eclipse里習(xí)慣的~~)后應(yīng)用退出即可.
67.要達(dá)到像vs一樣在終端(單獨(dú)的終端)輸出想調(diào)試的各種信息,不是采用cout,而是采用qDebug()<<”xxx”;
68.如果菜單下的action不能夠運(yùn)動(dòng)到toolbar上,則在toolbar上右擊,選擇separatetoolbar,然后移動(dòng)即可。
69.setCentralWidget()函數(shù)是把控件布滿(mǎn)整個(gè)界面的語(yǔ)句。
70.在Qt程序其中的一個(gè)函數(shù)中,如果需要調(diào)用另一個(gè)窗口類(lèi)且顯示出來(lái),則有2種方法。其一是在本類(lèi)中定義一個(gè)全局變量,然后在這個(gè)函數(shù)中new一個(gè)對(duì)象。如下所示:
voidMainWindow::on_actionNew_Window_triggered()
{
my_dailog = new Dialog(this);
my_dailog->show();
}
這種情況下建立的窗口時(shí)非模態(tài)的,且可以同時(shí)調(diào)出多個(gè)my_dialog窗口來(lái)。
另外一種方法是在程序內(nèi)部定義一個(gè)類(lèi)對(duì)象,如下所示:
voidMainWindow::on_actionNew_Window_triggered()
{
Dialog my_dialog;
my_dialog.setModal(false);
my_dialog.exec();
}
但是不管其模態(tài)設(shè)置是否為true,該窗口都是模態(tài)的,即該窗口顯示出來(lái)時(shí)其它的窗口不能工作了。當(dāng)然此時(shí)只能顯示1個(gè)my_dialog了。
Qt中的label控件對(duì)應(yīng)android中的是TextView控件。
71.如果想要窗口內(nèi)部的控件大小隨著窗口拉伸等變化而變化,則需要在布局中設(shè)置,點(diǎn)擊ui文件中的主體,然后選擇布局控件中滿(mǎn)足自己需求的一個(gè)即可。
72.window下的路徑名需要用2個(gè)左斜杠或者1個(gè)右斜桿。即”/”或者””。
73.在界面中設(shè)置顯示的文字屬性,如果在cpp中被重新設(shè)置了,那么運(yùn)行時(shí)是以cpp中設(shè)置的最后的設(shè)置,因?yàn)檫@些屬性被覆蓋掉了.
74. 在QtDesigner界面設(shè)計(jì)中,label中顯示的內(nèi)容各種屬性都可以設(shè)置,比如字體格式,顏色等.但是PushButton中顯示的字體在屬性欄就只能更改其內(nèi)容。如果要更改其它屬性則需要在代碼中實(shí)現(xiàn)。
75.一般信號(hào)中的toggled是指對(duì)應(yīng)的屬性為checkable,然后被鼠標(biāo)單擊了下而發(fā)射的。這個(gè)在復(fù)選按鈕和單選按鈕中比較常見(jiàn),但是在PushButton中也是可以用的,將PushButton的屬性checkable設(shè)置為真,則運(yùn)行時(shí)鼠標(biāo)單擊一下,按鈕的顏色會(huì)變淡,再單擊一下又會(huì)變亮,它是以顏色的的深淺來(lái)提醒它的toggle的。
菜單欄中的一個(gè)選項(xiàng),一般是用trigger來(lái)發(fā)射信號(hào)。
76.Qt的MessageBox中比較常用的是,MessageBox::warning(),MessageBox::information,MessageBox:YES等。
77.在LineEdit中有一個(gè)echoMode,里面可以選中password模式,則在LineEdit中輸入的內(nèi)容對(duì)用戶(hù)是不可見(jiàn)的,當(dāng)然對(duì)系統(tǒng)是可見(jiàn)的,我們可以將其內(nèi)容讀取出來(lái)。
78. CmoboBox中增加一項(xiàng)用的是addItem()函數(shù)。例如:
ui->comboBox->addItem("China");
79.Qt中QListView是基于Model的,QListWidget是基于Item的。
80.如果是用QListWidget的話(huà),加入內(nèi)容采用的是addItem()方法。
81.頭文件和對(duì)應(yīng)的源文件可以同時(shí)include同一個(gè)頭文件。
82.用滑動(dòng)條觸發(fā)進(jìn)度條的實(shí)驗(yàn)中,至少有下面3種方法可以執(zhí)行。
可以直接在界面設(shè)計(jì)的信號(hào)與槽中連接好對(duì)應(yīng)的信號(hào)與槽。無(wú)需任何代碼。
在界面的構(gòu)造函數(shù)中用connect函數(shù)連接好信號(hào)與槽,也無(wú)需其他代碼。如下:
connect(ui->horizontalSlider,SIGNAL(valueChanged(int)), ui->progressBar,SLOT(setValue(int)));
可以在滑動(dòng)條值改變的槽函數(shù)中實(shí)現(xiàn),如下:
voidDialog::on_horizontalSlider_valueChanged(int value)
{
ui->progressBar->setValue(ui->horizontalSlider->value());
}
83.讓狀態(tài)欄顯示文本不是采用setText()方法,而是采用showMessage().其第二個(gè)參數(shù)為顯示該內(nèi)容持續(xù)的時(shí)間,以毫秒為單位。
84. 如果在QtCreator中需要帶參數(shù)運(yùn)行,因?yàn)樵趍ain函數(shù)中經(jīng)常有argv這個(gè)變量傳入?yún)?shù),這可以在QtCreator的左側(cè)Project一欄中—>Targets—>Desttop(中間偏上的位置)—>Run—>Arguments中輸入需要附加的參數(shù)即可。
85. Windows+QtCreator+Opencv的使用:
需要在Qt工程中,即***.pro文件中加入:
INCLUDEPATH+=C:\Qt\opencv2.4.2\build\include    C:\Qt\opencv2.4.2\build\include\opencv    C:\Qt\opencv2.4.2\build\include\opencv2    LIBS+=C:\Qt\opencv2.4.2\build\x86\vc10\lib\opencv_core242d.lib    C:\Qt\opencv2.4.2\build\x86\vc10\lib\opencv_highgui242d.lib    C:\Qt\opencv2.4.2\build\x86\vc10\lib\opencv_imgproc242d.lib
特別要注意的地方是INCLUDEPATH后面添加的是C:\Qt\opencv2.4.2\build\include\等,而不是C:\Qt\opencv2.4.2\include\等,否則一直報(bào)錯(cuò)。
另外還有一點(diǎn)是Qt中的目錄不能包含空格,所以安裝的opencv目錄前如果有Program Files是不行的,為此我還專(zhuān)門(mén)把opencv移到了另一個(gè)目錄,2個(gè)opencv同時(shí)用。
86. QTextBrowser中append方法是在當(dāng)前框下一行加入內(nèi)容,可以是文字或圖片等。它本身已經(jīng)固定了換行模式,取消不了?!   etText方法是在框在加入內(nèi)容,也可以是文字或圖片等,但是它會(huì)把前面所有的內(nèi)容都覆蓋掉。
insertHtml和append一樣,可以加入文本或圖片等,它不會(huì)覆蓋掉其內(nèi)容,但是默認(rèn)的也是從下一行開(kāi)始的,即有換行模式,不過(guò)該自動(dòng)換行模式可以被取消。采用下面的語(yǔ)句:
ui->textBrowser->setWordWrapMode(QTextOption::NoWrap);
同理,如果要恢復(fù)自動(dòng)換行模式,采用:
ui->textBrowser->setWordWrapMode(QTextOption::WordWrap);
87. 解決新版Qt中不能使用opengl中的gluXXX()函數(shù)方法:
1. 先下載glut庫(kù)http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
2.將下載下來(lái)的文件解壓,將glut32.lib和glut.lib兩個(gè)lib文件移到qt目錄下的./lib文件夾中。
3.將glut.dll和glut32.dll兩個(gè)動(dòng)態(tài)鏈接庫(kù)移到C:\windows\system32中。
4.將glut.h文件移到qt目錄下的\include\QtOpenGL中
5.新建一個(gè)txt文件,里面輸入代碼:#include“glut.h”,然后把該txt文件的名字重命名為glut,注意這個(gè)地方不需要加后綴
6.切換到在自己的程序中,在myGLWidget.cpp(QGLWidget派生類(lèi)的cpp)加入"#include<glut>" 就OK了。即使我們也在GLWidget.cpp中也加入了頭文#include<QtOpenGL>,
上面的"#include<glut>" 同樣需要。
88. 在Qt中使用定時(shí)器的方法:
法一:只需啟動(dòng)定時(shí)器,例如startTimer(5);這里是設(shè)置5ms定時(shí),然后復(fù)寫(xiě)timerEvent(QTimerEvent*)函數(shù)即可。
法二:用如下代碼進(jìn)行設(shè)置
timer = new QTimer(this);    connect(timer, SIGNAL(timeout()), this, SLOT(timerEvent()));    timer->start(5);
然后重寫(xiě)timerEvent()槽函數(shù)即可。
89. 當(dāng)使用tr進(jìn)行語(yǔ)言國(guó)際化時(shí),有可能會(huì)出現(xiàn)錯(cuò)誤:error : 'tr' was not declared in this scope。解決方法:在程序中加入#include<QObject>,并使用QObject::tr();
90. Qt中如果需要更改工程名的話(huà)(這里指用QtCreator建立的工程),則需刪除一些QtCreator生成的與舊工程名相關(guān)的文件,一般刪除如下文件:Makefile、Makefile.Debug、Makefile.Release、*.pro.user,以及目錄release、debug。然后更改*.pro文件的名字,重新打開(kāi)工程編譯即可。
91. QFileInfo類(lèi)是用來(lái)提供與系統(tǒng)無(wú)關(guān)的文件信息的。canonicalFilePath指的是解釋過(guò)的絕對(duì)路徑,比如"..","."分別解釋為上一級(jí)目錄和本目錄。
92. qobject_cast<A>(B),當(dāng)類(lèi)型B和A相同或者類(lèi)型B是A的子類(lèi)類(lèi)型,則返回類(lèi)型A。否則返回0;其實(shí)就是說(shuō)如果B可以轉(zhuǎn)換成A的話(huà)(2種類(lèi)型有相似性),則進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換,否則轉(zhuǎn)換失敗。
93. QSetting類(lèi)提供了平臺(tái)無(wú)關(guān)的永久保存應(yīng)用程序設(shè)置的方法,這些設(shè)置包括窗口的位置,大小等信息。
94. QRectF為一個(gè)float精度的矩形框。
95.QPainter為一個(gè)繪圖裝置,我們可以在上面進(jìn)行繪圖,繪圖的對(duì)象為widget或者printer。
96.畫(huà)筆是用來(lái)繪制線(xiàn)型的,主要樣式有3個(gè)方面:筆帽,結(jié)合點(diǎn)和線(xiàn)型。
97.畫(huà)刷是用來(lái)畫(huà)填充封閉的幾何圖形的,主要有2個(gè)參數(shù)設(shè)置:顏色和樣式。
98.如果編譯時(shí)出現(xiàn)Qt自帶的源代碼處的錯(cuò)誤提示,比如說(shuō):qtextoption.h語(yǔ)法錯(cuò)誤:缺少“;”(在標(biāo)識(shí)符“QtGuiModule”的前面)
99.定位到錯(cuò)誤的地方時(shí),是Qt系統(tǒng)的源碼,按照道理系統(tǒng)源碼時(shí)不會(huì)出錯(cuò)的,這時(shí)有能是自己寫(xiě)的一個(gè)類(lèi)繼承了系統(tǒng)提供的類(lèi),而這個(gè)類(lèi)在頭文件的括號(hào)中沒(méi)有使用分號(hào)所致.
100.在Qt中使用定時(shí)器功能有2中方法,第一個(gè)是使用QTimer類(lèi)。第二個(gè)是使用QObject子類(lèi)的重載函數(shù)timerEvent()。在使用第1種方法時(shí)需要將設(shè)置定時(shí)器的信號(hào)與槽連接,然后使用start函數(shù)來(lái)啟動(dòng)該定時(shí)器,使用stop方法來(lái)停止定時(shí)器。在使用第2種方法時(shí),只需要調(diào)用系統(tǒng)的startTimer()函數(shù)就可以了。
101.QTimer::singleShot()方法可以完成在時(shí)間間隔完成后執(zhí)行后面的槽函數(shù),相當(dāng)于個(gè)直接的延時(shí)函數(shù),使用起來(lái)應(yīng)該還是蠻方便的。
102. 顏色的第4個(gè)通道值可以理解為不透明度,即如果為255的話(huà),就指的是完全不透明。
103. QString::number(num)可以將整型的num轉(zhuǎn)換成string型。
104. qreal 其實(shí)就是double型。
105.往QListWidget加入文字可以使用其addItem()方法.
106.arg()中的參數(shù)是QString型,則其對(duì)應(yīng)的百分號(hào)需要用單引號(hào)括起來(lái)。
107.Qt::DecorationRole是Qt::ItemDataRole中的一種,Qt::ItemDataRole表示每一個(gè)model中的Item都有自己的一個(gè)數(shù)據(jù)集,且有自己的特色。這些特點(diǎn)用來(lái)指定模型中的哪一種數(shù)據(jù)類(lèi)型將被使用。而Qt::DecorationRole指的是說(shuō)數(shù)據(jù)將以圖表的形式來(lái)呈現(xiàn)。
108.QAbstractItemView為一個(gè)抽象item視圖類(lèi),里面有很多方法可以重寫(xiě)。
109. QPaint是一個(gè)繪圖類(lèi),可以設(shè)置畫(huà)筆,畫(huà)刷,字體。
110.在設(shè)計(jì)用戶(hù)名密碼登陸時(shí),如果用戶(hù)名和密碼都正確,則會(huì)調(diào)用調(diào)用父類(lèi)的QDialog::accept()槽函數(shù),該函數(shù)實(shí)現(xiàn)關(guān)閉當(dāng)前對(duì)話(huà)框,設(shè)置對(duì)話(huà)框的運(yùn)行結(jié)果為QDialog::Accepted,并發(fā)送QDialog::finished(intresult)信號(hào)。
111.增加StackWidget頁(yè)面的方法,在StackWidget上鼠標(biāo)右擊,選擇insertpage,然后繼續(xù)選擇在本頁(yè)之前或者之后加入頁(yè)碼。
112. QAction對(duì)象使用setText()方法時(shí),如果在對(duì)象的構(gòu)造函數(shù)中已經(jīng)有了其文字顯示,那么action上面顯示的就是構(gòu)造函數(shù)中的text文本。這里的setText文本有2個(gè)作用,第一個(gè)是如果該action對(duì)應(yīng)到了菜單欄中,則菜單欄會(huì)自動(dòng)將其顯示出來(lái);第二個(gè)時(shí)如果構(gòu)造函數(shù)中沒(méi)有設(shè)置文本內(nèi)容,則該action會(huì)顯示setText()方法設(shè)置的內(nèi)容,當(dāng)然了,如果action設(shè)置了圖標(biāo),該文本內(nèi)容就被覆蓋了,退化為文本提示了。
113. cellClicked(int,int)信號(hào)是當(dāng)表格中的一個(gè)cell單元被單擊時(shí)發(fā)出的。它的兩個(gè)參數(shù)分別為表格中cell的行號(hào)和列號(hào)。
114.可以使用frameGeometry()來(lái)獲得程序中的主界面,然后該界面的定位函數(shù)可以獲得與主界面的相對(duì)位置,比如說(shuō)frameGeometry().bottomLeft()就是獲得主界面的左下方的位置。
115.當(dāng)自己定義了的一個(gè)類(lèi),該類(lèi)有對(duì)應(yīng)的頭文件和源文件。如果在第二個(gè)類(lèi)的頭文件中藥使用到第一個(gè)類(lèi),則可以不用包含第一個(gè)類(lèi)的頭文件,直接用class關(guān)鍵字聲明就可以了,在第二個(gè)類(lèi)的源文件中則需要包含第一個(gè)類(lèi)的頭文件,因?yàn)檫@里需要使用第一個(gè)類(lèi)對(duì)象的成員方法。
116.Qt中正則表達(dá)式為類(lèi)QRegExp,正則表達(dá)式是指一個(gè)用來(lái)描述或者匹配一系列符合某個(gè)句法規(guī)則的字符串的單個(gè)字符串。比如說(shuō)程序中的QRegExprx("\\[\\d{2}:\\d{2}\\.\\d{2}\\]");其實(shí)就是表示歌詞文件前面的格式,比如[00:05.54]。表達(dá)式中的d{2}表示匹配2個(gè)數(shù)字。
117. Qt中常見(jiàn)的類(lèi)的繼承總結(jié):  如果需要設(shè)計(jì)界面,且需要菜單欄,工具欄,狀態(tài)欄等,一般繼承QMainWidget類(lèi)。
如果需要界面,不需要菜單欄,工具欄,狀態(tài)欄等,一般繼承QDialog類(lèi)。
如果需要使用自定義視圖來(lái)畫(huà)圖形,則可以繼承QAbstractItem類(lèi)。
如果需要自己設(shè)計(jì)場(chǎng)景,比如游戲開(kāi)發(fā)的時(shí)候,可以繼承QGraphicsView類(lèi)。
如果需要自己制作一個(gè)小圖形視圖,可以考慮繼承QGraphicsObject類(lèi),當(dāng)將這些小視圖構(gòu)成一個(gè)視圖組時(shí),該組的類(lèi)可以繼承QGraphicsItemGroup類(lèi)和QObject類(lèi)。
一般的界面設(shè)計(jì)也可以繼承QWidget類(lèi)。
一般的文本類(lèi)可以繼承QLabel,比如在設(shè)計(jì)音樂(lè)播放器時(shí)的顯示桌面歌詞的類(lèi)。
118. 在QtCreator的使用中,有時(shí)候會(huì)出現(xiàn)兩個(gè)尖括號(hào)在一起的情況,這時(shí)候沒(méi)有語(yǔ)法錯(cuò)誤,但是QtCreator這個(gè)編輯環(huán)境會(huì)在你的代碼下出現(xiàn)個(gè)紅色的波紋,讓人看起來(lái)非常不舒服。例如:
解決方法非常簡(jiǎn)單,即把兩個(gè)尖括號(hào)中間不要緊挨著,用一個(gè)空格號(hào)隔開(kāi)一下即可,這時(shí)候紅色的波紋警告線(xiàn)就消失了。
轉(zhuǎn)載:
http://www.cnblogs.com/tornadomeet/tag/總結(jié)系列/
前一篇:Qt creator工程項(xiàng)目移植時(shí)因環(huán)境變換造成qmake錯(cuò)誤的解決方案
后一篇:<QT>線(xiàn)程學(xué)習(xí)實(shí)例
http://blog.sina.com.cn/lvxuecheng
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Qt Opencv 在Linux下攝像頭簡(jiǎn)單示例v1.0
VS2008 中使用 Qt
如何使用ui文件
QT openCV 實(shí)現(xiàn)攝像頭采集以及拍照功能
Qt5 + opencv3.4 + window 環(huán)境搭建 筆記
qt幾個(gè)窗體之間的值傳遞-百度文庫(kù)
更多類(lèi)似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服