QT理論試題及答案_第1頁
QT理論試題及答案_第2頁
QT理論試題及答案_第3頁
QT理論試題及答案_第4頁
QT理論試題及答案_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、QT理論試題以下關(guān)于QT的描述正確的是:是一個不跨平臺的C+圖形用戶界面由挪威TrollTech公司出品只支持Unix、Linuxd.QTAPI和開發(fā)工具對所支持的平臺是不一致的以下關(guān)于QT的描述不正確的是:QT支持2D圖形渲染QT支持3D圖形渲染QT支持OpenGLQT不支持XML3下關(guān)于不正確的是:是面向嵌入式系統(tǒng)的Qt版本是Qt的嵌入式窗口基于Windows平臺的開發(fā)工具是完整的自包含C+GUI的開發(fā)工具4內(nèi)部對字符集的處理采用以下哪個標(biāo)準(zhǔn):UNICODEASCIIGB2312ISO8859-1以下關(guān)于Qt描述不正確的是是基于面向?qū)ο蟮腃+語言提供了signal和slot的對象通信機制有

2、可查詢和可設(shè)計屬性沒有字符國際化6以下描述正確的是:標(biāo)準(zhǔn)的C+對象模型可有效的支持運行時參數(shù)標(biāo)準(zhǔn)的C+對象模型的靜態(tài)特性十分靈活圖形用戶界面編程無需運行得高效圖形用戶界面編程無需運行得高靈活性以下不是QT增加的特性:有效的對象通信signal和slot可查詢和可設(shè)計的對象事件及事件過濾器不使用指針8以下描述正確的是:元對象系統(tǒng)可以對信號使用模板元對象系統(tǒng)可以對槽使用模板Qt可在多個平臺的應(yīng)用程序中完全應(yīng)用模板Qt不能在多個平臺的應(yīng)用程序中完全應(yīng)用模板9.以下關(guān)于moc敘述正確的是:moc即MultObjectCompiler可產(chǎn)生能被任何標(biāo)準(zhǔn)C+編譯訪問的附加C+代碼moc必須手動調(diào)用類聲明中

3、有無Q_OBJECT無所謂10以下關(guān)于信號和槽的描述正確的是:用于SOCKET網(wǎng)絡(luò)通信用于UDP網(wǎng)絡(luò)通信用于對象間通信用于串口通信11以下關(guān)于信號/槽的敘述不正確的是:信號與槽通過connected函數(shù)任意相連信號/槽機制在QObject類中實現(xiàn)從QWidget類繼承的所有類可以包含信號和槽當(dāng)對象狀態(tài)變化時信號被發(fā)送,對象不關(guān)心是否有其他對象接收到該信號12以下類聲明中有幾處錯誤?classM:publicQobjectQ_OBJECTpublic:M();intvalue()constreturnva;publicslots:voidsetValue(int);signals:voidval

4、ueChanged(int);private:intva;;5TOC o 1-5 h z43213設(shè)有如下聲明voidM:setValue(intv)if(v!=va)va=v;emitvalueChanged(v);則對于如下語句Ma,b;connect(&a,SIGNAL(valueChanged(int),&b,SLOT(setValue(int);setValue(11);setValue(12);value();執(zhí)行后,值為:1111b.1212c.1112d.121114以下關(guān)于槽的描述正確的是:槽具有public和protected2個類tectedslots表示只有該

5、類的子類的信號才能連接c.槽是普通成員函數(shù)不能有privateslots15以下關(guān)于元對象系統(tǒng)不正確的是元對象系統(tǒng)只是用于處理對象間通信的信號/槽機制元對象系統(tǒng)可處理運行時的類型信息和動態(tài)屬性系統(tǒng)c.元對象系統(tǒng)基于Qobject類d.bc都對16不是元對象代碼實現(xiàn)的特征的是:a.提供信號/槽機制b.Class.forName()在運行的時候返回類名稱c.tr()用于國際化中的字符串翻譯d.metaObject()返回該類所關(guān)聯(lián)的元對象17.以下關(guān)于Q_OBJECT敘述不正確的是:類定一種聲明了Q_OBJECT后,該類才能使用元對象系統(tǒng)相關(guān)的特性Q_OBJECT對所有類都無關(guān)緊要QObject的

6、子類中未實現(xiàn)信號和槽也可使用Q_OBJECTQObject的子類中未實現(xiàn)屬性也可使用Q_OBJECT18以下關(guān)于元對象編譯器的敘述不正確的是:元對象編譯器不展開#define,但可展開#include元對象編譯器不展開#include忽略遇到的所有預(yù)處理程序無法處理所有C+語法19有如下語句classYourClass:publicQobjectQ_OBJECTpublicslots:voidapply(void(*apply)(List*,void*),char*);以下正確的是完全正確可以沒有Q_OBJECTslots關(guān)鍵字有誤函數(shù)指針不能作為信號和槽的參數(shù)20如下敘述不正確的是:不能把繼

7、承的成員函數(shù)升級為共有狀態(tài)宏不能用在信號和槽的參數(shù)中嵌套類不能放在信號部分嵌套類可以放在槽部分21有如下聲明:classAbc:publicQobjectQ_OBJECTpublic:WRITEQ_PROPERTY(PrioritypriorityREADprioritysetPriority)Q_ENUMS(Priority)enumPriorityHigh,Low,VeryHigh,VeryLow;voidsetPriority(Priority);Prioritypriority()const;關(guān)于屬性聲明的位置以下正確的是:原位置正確原位置不正確,應(yīng)為原位置不正確,應(yīng)為22以下關(guān)于屬性

8、的敘述不正確的是:基于元對象系統(tǒng)在類聲明中用宏聲明屬性不是一個類的成員屬性只能在繼承于QObject的子類中聲明23.以下關(guān)于QObject類敘述不正確的是:是所有Qt對象的基類QObject對象樹是一個靜態(tài)的QObjectList類對象object_treesobject_trees鏈表中存有部分對象指針通過object_trees鏈表可查詢到所有的對象24以下是事件處理方法的是:重載QApplication:notify()重載QObject:event()重載Qt基類事件處理函數(shù)以上全是25以下關(guān)于定時器的敘述不正確的是:多數(shù)平臺支持2ms精度的定時器使用定時器,可以用QTimer類使用

9、定時器,可以用QObject類的定時器定時器精度依賴于操作系統(tǒng)和硬件26.以下關(guān)于QObject類定時器的敘述正確的是:當(dāng)處理器正忙于其它事件的處理時,定時器仍可以立即觸發(fā)當(dāng)定時器觸發(fā)時,應(yīng)用程序會發(fā)送QtimerEventc.用startTimer()開始一個定時器,如果成功則返回0d.用startTimer()開始一個定時器,如果失敗則返回-127以下是QObject提供的字符串翻譯函數(shù)的選項是:translateit(),trUtf8()translation()tr(),trUtf_8()tr(),trUtf8()28以下關(guān)于元對象的敘述不正確的是:a.每個在類聲明中含有Q_OBJEC

10、T宏的類都有一個對應(yīng)的元對象b.每個在類聲明中含有Q_OBJECT宏的類都有一個對應(yīng)的QMetaObject類對象元對象是動態(tài)的d.一個類可能含有多個元對象與之對應(yīng)29窗口部件的父類包括:QWidgetQFrameQScrollViewd.以上全是以下關(guān)于QWidget類、QFrame類和QScrollView類的關(guān)系敘述正確的是:三個類是兄弟關(guān)系三個類是繼承關(guān)系:QWidget為祖父,QFrame為父,QScrollView為子三個類是繼承關(guān)系:QFrame為祖父,QWidget為父,QScrollView為子三個類是繼承關(guān)系:QFrame為祖父,QWidget與QScrollView互為兄

11、弟以下關(guān)于Qt風(fēng)格敘述正確的是:Qt的風(fēng)格類的基類是QStyle類QStyle的多數(shù)成員函數(shù)即有聲明也有實現(xiàn)其實現(xiàn)只能在QCommonStyle類中通過重載來完成其實現(xiàn)只能在QWindowStyle類中通過重載來完成關(guān)于布局功能的敘述,以下正確的是:在布局空間中布置子窗口部件設(shè)置子窗口部件間的空隙管理在布局空間中布置子窗口部件以上都對以下關(guān)于QLayout的描述不正確的是:是的布局系統(tǒng)抽象基類其中,屬性intmargin代表布局的外邊框的寬度其中,屬性intspacing代表布局內(nèi)的窗口部件的大小其中,屬性ResizeModeresizeMode代表布局的擴展方式布局窗口部件包括:QHBoxQ

12、VBoxQGridd.以上全有35以下敘述不正確的是:QHBox允許子窗口部件按水平、垂直和網(wǎng)格排列QVBox允許子窗口部件按水平、垂直和網(wǎng)格排列QGrid允許子窗口部件按水平、垂直和網(wǎng)格排列d.以上全不對36以下各項中,是QLayout子類的是:QGridLayoutQHBoxLayoutQVBoxLayoutb和c37如果對默認(rèn)放置位置不滿意,則須采取相應(yīng)的措施,以下哪項不是創(chuàng)建沒有父布局的布局對象調(diào)用addLayout()把這個布局插入到其他布局中c.沒有辦法a和b38以下關(guān)于集合類描述不正確的是:它是裝有多個條目的容器每個條目是某種數(shù)據(jù)結(jié)構(gòu)集合類可對容器中的條目做插入操作集合類不能對容

13、器中的條目做刪除操作39以下各項中屬于基于值的集合類是:QCacheQMapQPtrListQDict40以下各項中屬于基于指針的集合類的是:QIntCacheQValueStakQValueVectorQValueList41以下各項中既不基于指針也不基于值的是:QIntDictQPtrListQPtrStackQMemArray42所有基于指針的集合繼承了如下哪個類?QGCacheQGVectorQPtrCollectionQGList43當(dāng)插入一個條目到一個集合時,如下不正確的是:僅拷貝指針而不拷貝條目本身的,稱“淺拷貝”不允許只拷貝指針而不拷貝條目本身拷貝所有條目的數(shù)組到集合中是可能的

14、選項C又稱“深拷貝”以下各項中不是與Qt線程相關(guān)的類的是:QMutexQSemaphoreQThread以上都不是以下關(guān)于Qt線程敘述正確的是:Qt中提供了Thread線程類Qt中提供了QThread線程類通過重載Thread:run()函數(shù)定義線程的執(zhí)行內(nèi)容通過重載QThread:_run()函數(shù)定義線程的執(zhí)行內(nèi)容46有如下關(guān)于線程的代碼:classYour_Class:publicQThreadpublic:virtualvoidrun();voidYour_Class:run()YourClass:run();for(inti=0;i100;i+);intmain()Your_Class

15、a;a.run();return0;其中有幾處錯誤:a.1b.23447以下關(guān)于線程編程時的注意事項中不正確的是:在持有Qt庫互斥量時必須執(zhí)行阻塞操作在調(diào)用除了Qt容器和工具類外的任何內(nèi)容之前,鎖定Qt應(yīng)用程序互斥量只在GUI線程中使用QNetwork類不要在應(yīng)用程序中把普通Qt庫與支持線程的Qt庫混用48以下不屬于拖放機制的是:a.拖動剪貼板放下以上都不是49以下關(guān)于拖動的敘述錯誤的是:在拖動之后,QDragObject被立即刪除拖放明顯完成后,這個QDragObject要被保存QDragObject可能要與其他進程通信QDragObject對象最后由Qt刪除50在一些簡單情況下,拖放的目標(biāo)

16、接收一個被拖動數(shù)據(jù)的拷貝,并且由源決定是否刪除初始的拖動對象,這是QDropEvent中的什么操作?CopyMoveLink以上都不是51Qt/Embedded的開發(fā)公司是:MicrosoftSunOracleTrolltech52以下各項中關(guān)于焦點定位的習(xí)慣方式敘述錯誤的是:用戶按Tab鍵用戶按Enter鍵b選項不是用戶使用鼠標(biāo)滾輪53以下關(guān)于Qt/Embedded敘述不正確的是:是C/S結(jié)構(gòu)類庫完全采用C語言采用framebuffer作為底層圖形接口將外部輸入設(shè)備抽象為keyboard和mouse輸入事件54以下關(guān)于字體的敘述正確的是:Qt/Embedded用QFontManager管理字

17、體,與字體相關(guān)的類在服務(wù)器端運行Qt/Embedded用QFontManager管理字體,與字體相關(guān)的類在客戶端運行Qt/Embedded用FontManager管理字體,與字體相關(guān)的類在服務(wù)器端運行Qt/Embedded用FontManager管理字體,與字體相關(guān)的類在客戶端運行55以下各項中與顯示無關(guān)的類是:QScreenQLockQWSManagerQDiskFont56以下不是Qt支持的圖像格式是:JPGPNGBMPXPM57以下敘述正確的是:a.Qt支持GIF格式圖像,且可以存儲它們Qt支持GIF格式圖像,但不可以存儲它們Qt不支持GIF格式圖像,但可以存儲它們Qt不支持GIF格式圖

18、像,且不可以存儲它們用QPainter的轉(zhuǎn)換函數(shù)對圖像做轉(zhuǎn)換后,若要恢復(fù)圖像的原樣,則以下正確的是:無法實現(xiàn)可以實現(xiàn),用QPainter:resetForm()只能恢復(fù)最近一次的轉(zhuǎn)換可以實現(xiàn),用QPainter:resetForm()可以撤銷所有的轉(zhuǎn)換操作用QPixmap對象打開GIF動畫,以下敘述正確的是:可以看到動畫看不到任何畫面只能看到動畫的第一幀只能看到動畫的最后一幀以下關(guān)于Qt/Embedded客戶端與服務(wù)器的描述不正確的是:客戶端可以有多個服務(wù)器可以有多個客戶端只有一個服務(wù)器只有一個簡答題1、什么是qt,有什么優(yōu)點?答:Qt是諾基亞開發(fā)的一個跨平臺的C+圖形用戶界面應(yīng)用程序框架。它

19、提供給應(yīng)用程序開發(fā)者建立藝術(shù)級的圖形用戶界面所需的所用功能。Qt是完全面向?qū)ο蟮?,很容易擴展,并且允許真正地組件編程。是一個跨平臺的C+圖形用戶界面庫。Qt具有非常強的跨平臺和移植性強的特點。同時支持linux、windows、嵌入式的用戶界面開發(fā)。2、使用Qt編碼實現(xiàn)Lable顯示“helloworld的功能。#include#include#include/#includeintmain(intargc,char*argv)QApplicationapp(argc,argv);/QTextCodec:setCodecForTr(QTextCodec:codecForName(gbl8030

20、);QWidget*pWidget二newQWidget;QLabellabel(pWidget);label.setText(helloworld);pWidget-show();returnapp.exec();3、編寫代碼實現(xiàn)調(diào)用槽函數(shù)退出的quit程序,界面如下:#include#include#includeintmain(intargc,char*argv)QApplicationapp(argc,argv);QWidget*pWidget二newQWidget;QPushButton*button二newQPushButton(Quit,pWidget);QObject:conn

21、ect(button,SIGNAL(clicked(),pWidget,SLOT(close();pWidget-show();returnapp.exec();4、編程頭現(xiàn)spinbox和sHderGslidergt:Horizontal)之間的父互,界面如下,兩種期間的范圍全部是0T30。Title為“enteryourage”#include#include#include#include#includeintmain(intargc,char*argv)QApplicationapp(argc,argv);/創(chuàng)建app的構(gòu)造函數(shù)QWidget*pWidget二newQWidget;/n

22、ew個WidgetpWidget-setWindowTitle(enteryourage);/設(shè)置captionQSpinBox*spinbox=newQSpinBox;/new一個spinboxQSlider*slider=newQSlider(Qt:Horizontal);/new一個sliderspinbox-setRange(0,130);/設(shè)置范圍,-符號slider-setRange(0,130);QObject:connect(spinbox,SIGNAL(valueChanged(int),slider,SLOT(setValue(int);QObject:connect(sl

23、ider,SIGNAL(valueChanged(int),spinbox,SLOT(setValue(int);/信號和槽,(發(fā)送者,信號,接收者,槽).第一個是spinbox發(fā)送給slider的/第二個是slider發(fā)送給spinbox的spinbox-setValue(23);/QHBoxLayout是布局管理器,即在水平方向上排列窗口部件QHBoxLayout*layout=newQHBoxLayout;layout-addWidget(spinbox);layout-addWidget(slider);pWidget-setLayout(layout);pWidget-show();

24、/窗體顯示returnapp.exec();5、如何編譯運行qt程序,命令是什么?qmake-projectqmakemake6、如何將UI界面問件轉(zhuǎn)化成代碼的.h文件?(假設(shè)ui文件名為gogogo.ui。)UIC-ogogogo.hgogogo.ui7、請?zhí)顚懣崭裉幍恼Z句,實現(xiàn)聲明自己的槽MyWinExit和信號OnExit。classMyWindow:publicQwidgetQ_OBJECTpublic:MyWindow(QWidget*parent=0);signals:OnExit();privateslots:MyWinExit();8、假設(shè)我們建立了一個widget的圖形用戶界

25、面,如圖所示:那么我們main文件應(yīng)該怎么寫,假設(shè)ui的名字為gotocelldialog.ui#include#include#includeui_gotocelldialog.hintmain(intargc,char*argv)QApplicationapp(argc,argv);Ui:GotoCellDialogui;QDialog*dialog=newQDialog;uisetupUi(dialog);dialog-show();returnapp.exec();9、假設(shè)文件瀏覽器的界面定義如下:/*Formgeneratedfromreadinguifiledir.ui*Creat

26、ed:FriDec1011:46:182010*by:QtUserInterfaceCompilerversion4.5.0*WARNING!Allchangesmadeinthisfilewillbelostwhenrecompilinguifile!*/#ifndefUI_DIR_H#defineUI_DIR_H#include#include#include#include#include#include#include#include#include#include#include#includeQT_BEGIN_NAMESPACEclassUi_Dialogpublic:QVBoxL

27、ayout*verticalLayout;QComboBox*comboBox;QSplitter*splitter_2;QSplitter*splitter;QTreeView*treeView;QListView*listView;QTableView*tableView;voidsetupUi(QDialog*Dialog)if(Dialog-objectName().isEmpty()Dialog-setObjectName(QString:fromUtf8(Dialog);Dialog-resize(901,372);verticalLayout=newQVBoxLayout(Dia

28、log);verticalLayout-setObjectName(QString:fromUtf8(verticalLayout);comboBox=newQComboBox(Dialog);comboBox-setObjectName(QString:fromUtf8(comboBox);comboBox-setMaximumSize(QSize(85,16777215);verticalLayout-addWidget(comboBox);splitter_2=newQSplitter(Dialog);splitter_2-setObjectName(QString:fromUtf8(s

29、plitter_2);splitter_2-setOrientation(Qt:Horizontal);splitter=newQSplitter(splitter_2);splitter-setObjectName(QString:fromUtf8(splitter);splitter-setOrientation(Qt:Horizontal);treeView=newQTreeView(splitter);treeView-setObjectName(QString:fromUtf8(treeView);splitter-addWidget(treeView);listView=newQL

30、istView(splitter);listView-setObjectName(QString:fromUtf8(listView);splitter-addWidget(listView);splitter_2-addWidget(splitter);tableView=newQTableView(splitter_2);tableView-setObjectName(QString:fromUtf8(tableView);splitter_2-addWidget(tableView);verticalLayout-addWidget(splitter_2);retranslateUi(D

31、ialog);QMetaObject:connectSlotsByName(Dialog);/setupUivoidretranslateUi(QDialog*Dialog)Dialog-setWindowTitle(QApplication:translate(Dialog,Dialog,0,QApplication:UnicodeUTF8);comboBox-clear();comboBox-insertItems(0,QStringList()QApplication:translate(Dialog,345210227350241250350247206345233276,0,QApp

32、lication:UnicodeUTF8)QApplication:translate(Dialog,347264247345207221350247206345233276,0,QApplication:UnicodeUTF8);Q_UNUSED(Dialog);/retranslateUi;namespaceUiclassdir:publicUi_Dialog;/namespaceUiQT_END_NAMESPACE#endif/UI_DIR_H請使用Qdir實現(xiàn)treeview,listview,tableview項目答:dir.h#ifndefDIR_H#defineDIR_H#inc

33、lude#includeui_dir.hclassDir:publicQDialog,publicUi:dirQ_OBJECTpublic:Dir(QWidget*parent=0);publicslots:voidchooseMode(int);#endifdir.cpp#include#includedir.hDir:Dir(QWidget*parent):QDialog(parent)setupUi(this);QDirModel*dirModel;QStringListfilter;dirModel=newQDirModel(filter,QDir:Dirs|QDir:NoDotAndDotDot,QDir:DirsFirst|QDir:Name|QDir:Type);treeView-setModel(dirModel);treeView-hideColumn(1);treeView-hideColumn(2);treeView-hideColumn(3);tableView-setModel(dirModel);listView-setModel(dirModel);/tableView-hide();comboBox=newQComboBox();comboBox-addItem(tr(以

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論