第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

關(guān)于qt編程問(wèn)題?

關(guān)于qt編程問(wèn)題?

qt編程問(wèn)題有四個(gè)問(wèn)題向大佬求救C\Users\1\Desktop\PDautomotive1\com_data.cpp:288: error: invalid initialization of non-const reference of type 'QByteArray&' from an rvalue of type 'QByteArray'QByteArray &b=bit_32_2_byteArray(TIR);^C:\Users\1\Desktop\PDautomotive1\com_data.cpp:309: error: invalid initialization of non-const reference of type 'QByteArray&' from an rvalue of type 'QByteArray'QByteArray &d=bit_64_2_byteArray(data_bit);^C:\Users\1\Desktop\PDautomotive1\comrecv_class.h:5: error: expected primary-expression before 'unsigned'#define UInt32 unsigned int^C:\Users\1\Desktop\PDautomotive1\comrecv_class.h:5: error: expected ')' before 'unsigned'#define UInt32 unsigned int^
查看完整描述

1 回答

?
jeck貓

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊

1、關(guān)聯(lián)Qt庫(kù)。如果是分別安裝的Qt Creator和Qt庫(kù),而不是安裝集成Qt Creator和Qt庫(kù)的SDK,則需要手動(dòng)關(guān)聯(lián)Qt庫(kù)。打開(kāi)工具→選項(xiàng)菜單,然后選擇“構(gòu)建和運(yùn)行”一項(xiàng),再進(jìn)入Qt版本選項(xiàng)卡。點(diǎn)擊右上角的“添加”按鈕,然后會(huì)讓選擇qmake.exe文件,我們?cè)赒t(不是Qt Creator)安裝目錄的bin目錄中找到該文件并打開(kāi)?,F(xiàn)在已經(jīng)默認(rèn)生成了版本信息,我們點(diǎn)擊確定按鈕即可。

2、關(guān)聯(lián)MinGW。在安裝Qt 4.8.6及以后的Qt 4版本時(shí),應(yīng)該按照安裝時(shí)的提示來(lái)下載相應(yīng)版本的MinGW,不然編譯程序無(wú)法運(yùn)行。如果是Qt4版本,需要使用GCC 4.4,也就是MinGW需要是4.4版本的,其他新的版本均不可用。在Qt 4.8版本,需要下載并指定GDB才能正常調(diào)試。下載完MinGW和GDB以后,將其解壓到Qt的安裝目錄中,比如這里都解壓到了C:\Qt目錄中。打開(kāi)工具→選項(xiàng)菜單,然后選擇“構(gòu)建和運(yùn)行”一項(xiàng),再進(jìn)入工具鏈選項(xiàng)卡。點(diǎn)擊右上角的“添加”按鈕,然后會(huì)讓選擇mingw32-g++.exe文件,我們?cè)贛inGW安裝目錄的bin目錄中找到該文件并打開(kāi)。關(guān)聯(lián)GDB則進(jìn)入調(diào)試器選項(xiàng)卡添加GDB相關(guān)exe文件。

如果安裝的是集成開(kāi)發(fā)包QtSDK,則不需要手動(dòng)關(guān)聯(lián)Qt庫(kù)、MinGW和GDB,由Qt自動(dòng)關(guān)聯(lián)。

注意:Qt5以后版本默認(rèn)也包含了所有需要的工具,不存在這里的情況,直接下載安裝即可使用!

3、在創(chuàng)建桌面版項(xiàng)目時(shí),最好選中“使用影子構(gòu)建”,這樣編譯生成的文件會(huì)和源碼分別存放,如下圖所示。編譯完成后會(huì)發(fā)現(xiàn)多了一個(gè)helloworld-build-desktop-Qt_4_8_1__4_8_1____目錄,里面存放的就是編譯生成的文件。這就是前面創(chuàng)建項(xiàng)目講到的 “使用影子構(gòu)建” ,如果沒(méi)有選中這個(gè),那么生成的文件就會(huì)和源碼在同一個(gè)目錄里。


4、補(bǔ)充:如果要給生成的exe可執(zhí)行文件更換一個(gè)自定義圖標(biāo),可以這樣做:(1)在項(xiàng)目中添加一個(gè)myapp.rc(名字可以隨意)文件,然后在里面輸入下面一行代碼:IDI_ICON1               ICON    DISCARDABLE     "appico.ico",這里的appico.ico就是自己的.ico圖標(biāo)文件;

(2)在.pro項(xiàng)目文件中添加下面一行代碼:RC_FILE = myapp.rc,

(3)重新編譯

如果需要更換新的圖標(biāo),建議先清理項(xiàng)目的編譯文件,再重新編譯,否則可能會(huì)報(bào)錯(cuò),如下。

“:-1: 錯(cuò)誤:No rule to make target `..\helloworld\myapp.rc', needed by `debug/myapp_res.o'.  Stop.”

5、在創(chuàng)建主窗口MainWindow項(xiàng)目后,打開(kāi)mainwindow.ui文件進(jìn)入設(shè)計(jì)模式。在這里可以看到界面左上角的“在這里輸入”,我們可以在這里添加菜單。雙擊“在這里輸入”,將其更改為“文件(&F)”,然后按下回車(chē)鍵,效果如下圖所示。這里的&F表明將菜單的快捷鍵設(shè)置為了Alt+ F,可以看到,實(shí)際的顯示效果中&符號(hào)是隱藏的。


同樣的方法,我們?cè)谖募藛沃刑砑印靶陆?&N)”子菜單,效果如下圖所示。菜單后面的那個(gè)加號(hào)圖標(biāo)是用來(lái)創(chuàng)建下一級(jí)菜單的。


Qt中的一個(gè)菜單被看做是一個(gè)Action,我們?cè)谙旅娴腁ction編輯器中可以看到剛才添加的“新建”菜單,如下圖所示。


雙擊該條目,會(huì)彈出編輯動(dòng)作對(duì)話框,這里可以進(jìn)行各項(xiàng)設(shè)置,比如我們可以設(shè)置菜單的快捷鍵,點(diǎn)擊一下快捷鍵后面的行編輯器,然后按下鍵盤(pán)上的Ctrl + N,這樣就可以將該菜單的快捷鍵設(shè)置為Ctrl + N。如下圖所示。那么大家可能會(huì)問(wèn),既然該菜單的快捷鍵是這么設(shè)置的,那么前面設(shè)置的“新建(N)”中的N是什么呢?這個(gè)可以被稱(chēng)為加速鍵,就是只有當(dāng)文件菜單處于激活(顯示)狀態(tài)時(shí),按下N鍵才會(huì)執(zhí)行新建菜單的功能。


6、Qt中可以使用資源文件將各種類(lèi)型的文件添加到最終生成的可執(zhí)行文件中,這樣就可以避免使用外部文件可能出現(xiàn)的一些問(wèn)題。而且,在編譯時(shí)Qt還會(huì)將資源文件進(jìn)行壓縮,我們可能發(fā)現(xiàn)生成的可執(zhí)行文件比我們添加到其中的資源文件還要小。創(chuàng)建完資源文件后會(huì)自動(dòng)打開(kāi)該資源文件,這里需要先在下面添加前綴,就是點(diǎn)擊添加按鈕,然后選擇前綴,默認(rèn)的前綴是“/new/prefix1”,這個(gè)可以隨意修改(不要出現(xiàn)中文字符),我們這里因?yàn)橐砑訄D片,所以修改為/myImages。然后再按下添加按鈕來(lái)添加文件,這里最好將所有要用到的圖片放到項(xiàng)目目錄中。比如我們這里在項(xiàng)目目錄中新建了一個(gè)images文件夾,然后將需要的圖標(biāo)文件粘貼進(jìn)去。添加完文件后,如下圖所示。


當(dāng)添加完資源后,一定要按下Ctrl + S來(lái)保存資源文件,不然在后面可能無(wú)法顯示已經(jīng)添加的資源。

對(duì)于添加的資源文件,在項(xiàng)目目錄中可以看到,即myResources.qrc,使用寫(xiě)字板程序?qū)⑵浯蜷_(kāi),可以發(fā)現(xiàn)它其實(shí)就是一個(gè)XML文檔:

<RCC> 

<qresourceprefix="/myImages">

<file>images/filenew.png</file>

<file>images/fileopen.png</file>

<file>images/filesave.png</file>

<file>images/filesaveas.png</file>

<file>images/find.png</file>

</qresource>

</RCC>

7、使用代碼添加菜單時(shí),在構(gòu)造函數(shù)中添加如下代碼:

QAction *openAction = new QAction(QString::fromUtf8("&Open"), this);// 創(chuàng)建新的動(dòng)作 

QIcon icon(":/myImages/images/fileopen.png");// 添加圖標(biāo) 

openAction->setIcon(icon);

openAction->setShortcut(QString::fromUtf8("Ctrl+O"));// 設(shè)置快捷鍵

ui->menu_F->addAction(openAction);// 在文件菜單中設(shè)置新的打開(kāi)動(dòng)作

這里添加圖標(biāo)時(shí),就是使用的資源文件中的圖標(biāo)。使用資源文件,需要在最開(kāi)始使用冒號(hào),然后添加前綴,后面是文件的路徑。在代碼中使用文件菜單,就是使用其objectName。大家現(xiàn)在可以運(yùn)行程序查看效果,當(dāng)然這里也可以將Open改為中文。


8、向工具欄添加圖標(biāo):可以將動(dòng)作編輯器中的動(dòng)作拖動(dòng)到工具欄中作為快捷圖標(biāo)使用;可以在工具欄上點(diǎn)擊鼠標(biāo)右鍵來(lái)添加分隔符。

9、使用垂直布局管理器(QVBoxLayout)布局:部件自動(dòng)垂直排列,并且進(jìn)行水平拉伸,無(wú)論如何改變布局管理器的大小,按鈕總是水平方向變化。

使用垂直分裂器(QSplitter)布局:部件自動(dòng)垂直排列,但進(jìn)行放大可以發(fā)現(xiàn),使用分裂器按鈕縱向是可以變大的,這就是分裂器和布局管理器的重要區(qū)別。

10、快速?gòu)念^文件聲明處創(chuàng)建函數(shù)定義的方法:到mainwindow.h文件中,將鼠標(biāo)定位到showFindText()函數(shù)上,然后點(diǎn)擊右鍵,在彈出的菜單中選擇“重構(gòu)”→“在mainwindow.cpp添加聲明”,或者直接使用Alt+Enter快捷鍵,這樣就會(huì)直接在mainwindow.cpp文件中添加函數(shù)定義,并跳轉(zhuǎn)到該函數(shù)處。


11、在QtCreator中有幾種快速定位函數(shù)的方法:

第一種,在函數(shù)聲明的地方直接跳轉(zhuǎn)到函數(shù)定義的地方。

例如我們?cè)趍ainwindow.h文件的loadFile()函數(shù)上點(diǎn)擊鼠標(biāo)右鍵,在彈出的菜單上選擇“在方法聲明/定義之間切換”,這時(shí)就會(huì)自動(dòng)跳轉(zhuǎn)到mainwindow.cpp文件中該函數(shù)的定義處。如下圖所示。當(dāng)然還可以反向使用。

第二種,快速查看一個(gè)文件里的所有函數(shù)。

可以在編輯器正上方的下拉框里查看正在編輯的文件中所有的函數(shù)的列表,點(diǎn)擊一個(gè)函數(shù)就會(huì)跳轉(zhuǎn)到指定位置。如下圖所示。

第三種,使用類(lèi)視圖或者大綱視圖。

在項(xiàng)目列表上面的下拉框中可以更改查看的內(nèi)容,如果選擇為類(lèi)視圖或者大綱,則會(huì)顯示文件中所有的函數(shù)的列表。如下圖所示。

第四種,使用查找功能查看函數(shù)的所有調(diào)用處。 

在一個(gè)函數(shù)名上點(diǎn)擊鼠標(biāo)右鍵,然后選擇“查找何處被使用”菜單,這時(shí)就會(huì)在下面的搜索結(jié)果欄中顯示該函數(shù)所有的使用位置。我們可以通過(guò)點(diǎn)擊一個(gè)位置來(lái)跳轉(zhuǎn)到該位置。如下圖所示。


12、在Action編輯器中,有兩個(gè)屬性toolTip和statusTip,分別為工具欄提示和狀態(tài)欄提示,如下圖

這時(shí)運(yùn)行程序,當(dāng)光標(biāo)移動(dòng)到新建動(dòng)作上時(shí),在下面的工具欄和狀態(tài)欄將會(huì)出現(xiàn)設(shè)置的提示。如下圖所示

13、狀態(tài)信息可以被分為三類(lèi):臨時(shí)信息,如一般的statusTip提示信息,上面講到的動(dòng)作提示就是臨時(shí)信息;正常信息,如顯示頁(yè)數(shù)和行號(hào);永久信息,如顯示版本號(hào)或者日期??梢允褂胹howMessage()函數(shù)來(lái)顯示一個(gè)臨時(shí)消息,它會(huì)出現(xiàn)在狀態(tài)欄的最左邊。一般用statusBar->addWidget()函數(shù)添加一個(gè)QLabel到狀態(tài)欄上用于顯示正常信息,它會(huì)生成到狀態(tài)欄的最左邊,可能會(huì)被臨時(shí)消息所掩蓋。如果要顯示永久信息,要使用statusBar->addPermanentWidget()函數(shù)來(lái)添加一個(gè)如QLabel一樣的可以顯示信息的部件,它會(huì)生成在狀態(tài)欄的最右端,不會(huì)被臨時(shí)消息所掩蓋。

14、關(guān)于隨機(jī)數(shù),在Qt中是使用qrand()和qsrand()兩個(gè)函數(shù)實(shí)現(xiàn)的。在使用qrand()函數(shù)產(chǎn)生隨機(jī)數(shù)之前,一般要使用qsrand()函數(shù)為其設(shè)置初值,如果不設(shè)置初值,那么每次運(yùn)行程序,qrand()都會(huì)產(chǎn)生相同的一組隨機(jī)數(shù)。為了每次運(yùn)行程序時(shí),都可以產(chǎn)生不同的隨機(jī)數(shù),我們要使用qsrand()設(shè)置一個(gè)不同的初值。


查看完整回答
1 反對(duì) 回復(fù) 2018-07-29
  • 1 回答
  • 0 關(guān)注
  • 1995 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)