QT图形程序设计考试试卷(广东金融)
嵌入式QT图形界面设计考试题
11级3G嵌入式班:吕中旭嵌入式QT图形界面设计考试题一、设计一个类似于QQ登陆界面的程序,要求1)有用户名输入框、密码输入框2)有确认按钮、退出按钮3)当点击确认按钮时,检查密码和用户名是否匹配默认密码和用户名(默认Passwd:123456,UserName:ct),如果匹配登陆界面退出,否则弹出警告框。
4)当点击退出按钮时,退出登陆界面。
程序代码:“CSS2.cpp”#ifndef CSS2_H#define CSS2_H#include<QDialog>#include<QLabel>#include<QPushButton>#include<QLineEdit>#include<QVBoxLayout>#include<QHBoxLayout>#include<QGridLayout>#include <QMessageBox>class LOGIN:public QDialog //定义一个LOGIN(登录)的类{Q_OBJECTpublic:LOGIN(QWidget *parent =0); //公共成员 QWidget指针parent默认值为0 private: //私有成员QLabel * userlabel; //用户名标签QLabel *passwordlabel; //用户密码标签QLineEdit * userlineedit; //用户名文本输入框QLineEdit * passwordlineedit; //用户密码文本输入框QPushButton * loginbutton; //定义登录按钮QPushButton * quitbutton; //定义退出按钮QVBoxLayout * VLlayout; //定义垂直布局管理器QGridLayout * GLlayout; //定义网状布局管理器QHBoxLayout * HLlayout; //定义水平布局管理器private slots: //定义私有槽void login(); //引用用户登陆函数void quit(); //引用用户退出函数};#endif// CSS2_H//用户登录函数css2.cpp#include "css2.h"LOGIN::LOGIN(QWidget *parent):QDialog(parent)//将parent的参数传递过去{userlabel = new QLabel("username:");passwordlabel = new QLabel("passwd:");userlineedit = new QLineEdit;passwordlineedit = new QLineEdit;loginbutton = new QPushButton("login");quitbutton = new QPushButton("quit");VLlayout = new QVBoxLayout(this);GLlayout = new QGridLayout;HLlayout = new QHBoxLayout;GLlayout->addWidget(userlabel,0,0);GLlayout->addWidget(userlineedit,0,1);GLlayout->addWidget(passwordlabel,1,0);GLlayout->addWidget(passwordlineedit,1,1);HLlayout ->addWidget(loginbutton);HLlayout ->addWidget(quitbutton);VLlayout ->addLayout(GLlayout);VLlayout ->addLayout(HLlayout);setLayout(VLlayout);connect(loginbutton,SIGNAL(clicked()),this,SLOT(login()));connect(quitbutton,SIGNAL(clicked()),this,SLOT(quit()));}void LOGIN::login()//用户登录{if((userlineedit->text()!="ct")||(passwordlineedit->text()!="123456") )QMessageBox::warning(this,"warning"," username or passwd is wrong!");elsethis->close();}void LOGIN::quit()//用户退出{QMessageBox::StandardButton mybutton;mybutton =QMessageBox::warning(this,"warning","are you sure to quit the login??,QMessageBox::Yes|QMessageBox::No");if(mybutton==QMessageBox::Yes)this->close();}//主函数main.cpp#include<QApplication>#include"css2.h"int main(int argc,char *argv[]){QApplication app(argc,argv);LOGIN logining;logining.show(); //显示登陆界面return app.exec();}效果截图:登陆界面:用户名正确,密码不正确:警告错误:密码和用户都正确:二、设计实现一个简单的计算器程序,要求1)能进行简单的+、-、*、/、1/x、sqart(开方)按键计算。
Qt笔试题-单项选择题100题(含答案)
Qt笔试题单选100题(带答案)1.Qt中,moc(MetaObject Compiler)的主要作用是什么?A: 展开#define和#includeB: 产生能被任何标准C++编译器访问的附加C++代码C: 必须手动调用D: 类声明中有无Q_OBJECT宏无关紧要答案:B2.以下哪个不是Qt中用于处理字符集的标准?A: UNICODEB: ASCIIC: GB2312D: ISO 88591(Qt内部主要使用UNICODE)答案:D3.在Qt中,哪个类用于提供一个统一的命令接口,无论是从菜单、工具栏还是快捷方式触发?A: QToolBarB: QMenuBarC: QStatusBarD: QAction答案:D4.以下哪个描述关于Qt的Model/View架构是错误的?A: 它采用MVC(ModelViewController)架构B: MVC架构用于将应用程序的数据、用户界面和控制逻辑分离C: Qt的Model/View架构完全不需要ControllerD: 它提高了代码的可维护性和可扩展性答案:C(虽然MVC架构包含Controller,但Qt的Model/View架构主要关注Model和View,Controller的概念通常在其他部分处理)5.在Qt中,若要在信号与槽之间建立连接,并确保它们正确工作,以下哪个条件不是必需的?A: 信号和槽的参数类型必须匹配B: 信号和槽必须在QObject或其子类中声明C: 槽函数可以是private的D: 必须使用connect函数手动连接信号和槽(在Qt5及更高版本中,可以使用newstyle connect语法,但非必需手动调用)答案:D6.在Qt中,用于分割窗口,允许用户动态调整子窗口大小的控件是?A: QSplitterB: QFrameC: QMainWindowD: QVBoxLayout(虽然可以影响布局,但不直接用于分割窗口)答案:A7.以下哪个不是Qt中用于布局管理的方式?A: 绝对位置定位(absolute positioning)B: 布局管理器(layout managers)C: 网格布局(grid layout,虽然未直接列出,但Qt有QGridLayout,视为有效方式)D: 文本流布局(flow layout,非Qt标准布局方式)答案:D8.在Qt中,以下哪个类不是用于创建多文档界面(MDI)的?A: QMdiAreaB: QMdiSubWindowC: QSplitter(主要用于分割窗口,非MDI组件)D: QWorkspace(注意:QWorkspace在较新版本的Qt中可能已被弃用或替换)答案:C(同时,D选项在Qt新版本中可能不直接使用,但问题强调的是非MDI组件)9.以下哪个描述关于Qt的元对象系统(MetaObject System)是不正确的?A: 它只是用于处理对象间通信的信号/槽机制B: 它可处理运行时的类型信息和动态属性系统C: 它基于QObject类D: 它完全不需要C++运行时类型信息(RTTI)支持(实际上,元对象系统在某些方面提供了类似RTTI的功能)答案:A(虽然元对象系统确实用于信号/槽机制,但其功能远不止于此)10. 在Qt中,哪种布局管理器可以让子部件根据其添加的顺序依次水平排列?A. QGridLayoutB. QHBoxLayoutC. QVBoxLayoutD. QFormLayout答案:B11. 在Qt中,哪种类用于处理绘图操作?A. QPainterB. QPixmapC. QImageD. QPicture答案:A12. QML中的“id”属性的作用是什么?A. 用于唯一标识组件B. 用于设置组件的类型C. 用于指定组件的父对象D. 用于定义组件的样式答案:A13. 哪种信号类型在Qt的信号和槽机制中引入了更多的运行时检查?A. 自定义信号B. 预定义信号C. 带参数的信号D. 信号的重载答案:D14. 在Qt中,哪个类可以用于创建一个无边框的窗口?A. QDialogB. QMainWindowC. QFrameD. QWidget答案:D15. 在Qt中,哪个宏用于启用元对象系统和信号槽机制?A. Q_OBJECTB. Q_SIGNALSC. Q_SLOTSD. Q_PROPERTY答案:A16. 在Qt中,哪种类型的信号槽连接是在编译时进行检查的?A. 字符串连接B. 直接连接C. 强类型连接D. 阻塞连接答案:C17. 在Qt中,哪种方法用于实现自定义绘图?A. overrideEventB. customEventC. paintEventD. drawEvent答案:C18. 在Qt中,哪种类用于处理XML解析?A. QXmlStreamReaderB. QDomDocumentC. QXmlSimpleReaderD. QXmlDocument答案:A19. 哪个Qt模块提供了跨平台的线程支持?A. QtCoreB. QtConcurrentC. QtGuiD. QtNetwork答案:A20. 在Qt中,哪个类提供了处理多媒体的功能,例如音频和视频播放?A. QMediaPlayerB. QSoundC. QAudioOutputD. QMediaRecorder答案:A21. 在Qt的QML中,哪种属性可以用于动画效果?A. BehaviorB. TimerC. TransitionD. Animation答案:D22. 在Qt中,QNetworkAccessManager的主要功能是什么?A. 处理网络访问和HTTP请求B. 管理网络接口C. 提供网络安全功能D. 处理多线程网络操作答案:A23. 在Qt中,QGraphicsView类的主要用途是什么?A. 管理和显示2D图形对象B. 提供3D图形支持C. 处理视频播放D. 管理窗口布局答案:A24. 在Qt中,如何实现一个线程安全的信号槽连接?A. Qt::DirectConnectionB. Qt::QueuedConnectionC. Qt::BlockingQueuedConnectionD. Qt::AutoConnection答案:B25. 在Qt中,QML的ListView组件主要用于什么目的?A. 显示网格布局B. 显示滚动列表C. 显示树状结构D. 显示多页切换答案:B26. 在Qt中,哪个类用于表示和操作矩形区域?A. QRectB. QRegionC. QPolygonD. QPainterPath答案:A27. 在Qt中,QML中的“anchors”属性用于什么目的?A. 控制组件之间的相对布局B. 设置组件的透明度C. 定义组件的动画效果D. 控制组件的可见性答案:A28. 在Qt中,哪个类用于实现跨平台的文件路径操作?A. QFileB. QDirC. QFileInfoD. QPath答案:B29. 在Qt中,QAbstractItemModel类的主要功能是什么?A. 提供数据模型的基类B. 管理图形项的基类C. 处理数据库操作的基类D. 提供多线程支持的基类答案:A30. 在Qt中,哪种方式可以将QML中的信号连接到C++中的槽?A. QObject::connectB. QQmlComponent::connectC. QMetaObject::connectD. QQmlEngine::connect答案:A31. 在Qt中,QSortFilterProxyModel类的主要用途是什么?A. 提供排序和过滤功能的代理模型B. 管理多线程操作的代理模型C. 提供数据库访问的代理模型D. 管理网络请求的代理模型答案:A32. 在Qt中,哪个类用于实现自定义的图形视图项?A. QGraphicsItemB. QGraphicsObjectC. QGraphicsWidgetD. QGraphicsScene答案:A33. 在Qt中,QDeclarativeEngine类的主要功能是什么?A. 提供QML解析和执行引擎B. 提供网络请求处理引擎C. 提供数据库访问引擎D. 提供多媒体播放引擎答案:A34. 在Qt中,QML中的“PropertyBinding”机制主要用于什么?A. 绑定属性值到另一个属性B. 创建动态动画效果C. 设置组件的可见性D. 管理组件的事件处理答案:A35. 在Qt中,QFileDialog类的主要用途是什么?A. 提供文件选择对话框B. 提供文件读写操作C. 提供文件路径管理D. 提供文件压缩功能答案:A36. 在Qt中,哪种类型的信号槽连接可以跨线程通信?A. DirectConnectionB. QueuedConnectionC. BlockingQueuedConnectionD. AutoConnection答案:B37. 在Qt中,哪个类用于管理图形视图的场景?A. QGraphicsViewB. QGraphicsSceneC. QGraphicsItemD. QGraphicsLayout答案:B38. 在Qt中,QML中的“Component”元素的主要作用是什么?A. 定义可重用的UI组件B. 控制组件的布局C. 管理组件的动画效果D. 设置组件的事件处理答案:A39. 在Qt中,QGuiApplication类的主要用途是什么?A. 管理GUI应用程序的主事件循环B. 提供数据库访问支持C. 管理多线程操作D. 提供网络请求处理答案:A40. 在Qt中,哪种方法用于处理自定义事件?A. event()B. customEvent()C. handleEvent()D. processEvent()答案:B41. 在QML中,哪种类型的动画用于平滑属性变化?A. SequentialAnimationB. ParallelAnimationC. PropertyAnimationD. Behavior答案:C42. 在Qt中,哪个类提供了高效的2D图形渲染?A. QPainterB. QPictureC. QSvgRendererD. QGraphicsItem答案:A43. 在Qt中,如何在QML中使用C++对象?A. 通过信号和槽机制B. 使用QML模块C. 使用QML插件D. 注册C++类型到QML答案:D44. 在Qt中,QSharedPointer的主要功能是什么?A. 管理线程安全的指针B. 实现智能指针C. 提供跨线程的指针管理D. 管理文件句柄答案:B45. 在Qt中,哪种布局管理器允许子部件按行和列排列?A. QGridLayoutB. QHBoxLayoutC. QVBoxLayoutD. QStackedLayout答案:A46. 在QML中,如何创建自定义组件?A. 使用Component元素B. 使用Loader元素C. 使用Repeater元素D. 使用View元素答案:A47. 在Qt中,QAbstractListModel类的主要用途是什么?A. 提供列表数据模型的基类B. 提供树形数据模型的基类C. 提供网格数据模型的基类D. 提供图形视图项的基类答案:A48. 在Qt中,如何处理主窗口的关闭事件?A. closeEvent()B. destroyEvent()C. exitEvent()D. shutdownEvent()答案:A49. 在Qt中,如何在QML中访问父组件?A. 使用parent属性B. 使用id属性C. 使用root属性D. 使用parentItem属性答案:A50. 在Qt中,QThread类的主要功能是什么?A. 提供线程管理功能B. 提供事件处理功能C. 提供网络访问功能D. 提供文件读写功能答案:A51. 在Qt中,如何实现跨平台的文件读写?A. 使用QFile类B. 使用QDir类C. 使用QT extStream类D. 使用QDataStream类答案:A52. 在QML中,如何使用C++提供的自定义属性?A. 使用Q_PROPERTY宏B. 使用Q_DECLARE_METATYPE宏C. 使用Q_INVOKABLE宏D. 使用Q_ENUMS宏答案:A53. 在Qt中,QGraphicsView类的主要用途是什么?A. 提供2D图形视图B. 提供3D图形视图C. 提供视频播放视图D. 提供文档视图答案:A54. 在Qt中,如何设置窗口的透明度?A. 使用setWindowOpacity()方法B. 使用setWindowOpacity()属性C. 使用setTransparent()方法D. 使用setAlpha()方法答案:A55. 在Qt中,如何处理鼠标双击事件?A. mouseDoubleClickEvent()B. mousePressEvent()C. mouseClickEvent()D. mouseReleaseEvent()答案:A56. 在Qt中,如何将QML属性绑定到C++变量?A. 使用Q_PROPERTY和QML_BINDB. 使用Q_PROPERTY和QML_CONNECTIONC. 使用Q_PROPERTY和QQmlEngineD. 使用Q_PROPERTY和QQmlContext答案:D57. 在Qt中,如何实现自定义的QML类型?A. 使用qmlRegisterType()函数B. 使用qmlRegisterSingletonType()函数C. 使用qmlRegisterType()宏D. 使用qmlRegisterSingletonType()宏答案:A58. 在Qt中,QNetworkRequest类的主要用途是什么?A. 发送HTTP请求B. 接收HTTP响应C. 处理网络接口D. 管理网络连接答案:A59. 在Qt中,如何在QML中动态创建组件?A. 使用Loader元素B. 使用Component.createObject()方法C. 使用Repeater元素D. 使用View元素答案:B60. 在Qt中,QBuffer类的主要用途是什么?A. 在内存中读写数据B. 管理文件缓存C. 管理网络缓存D. 管理图形缓存答案:A61. 在Qt中,如何使用信号和槽机制处理异步操作?A. 使用QFuture和QtConcurrentB. 使用QThread和QtConcurrentC. 使用QEventLoop和QtConcurrentD. 使用QFuture和QEventLoop答案:A62. 在Qt中,如何在QML中处理键盘事件?A. 使用Keys.onPressedB. 使用MouseArea.onClickedC. 使用TouchArea.onPressedD. 使用GestureArea.onSwipe答案:A63. 在Qt中,如何设置窗口的最小尺寸?A. 使用setMinimumSize()方法B. 使用setMaxSize()方法C. 使用setFixedSize()方法D. 使用setWindowSize()方法答案:A64. 在Qt中,如何实现自定义的QML信号?A. 使用Q_SIGNAL宏B. 使用Q_SLOT宏C. 使用Q_SIGNALS宏D. 使用QML_SIGNAL宏答案:A65. 在Qt中,如何处理定时器事件?A. timerEvent()方法B. timeEvent()方法C. timeoutEvent()方法D. intervalEvent()方法答案:A66. 在Qt中,如何在QML中使用动画?A. 使用Animation元素B. 使用Transitions元素C. 使用Animations元素D. 使用Behavior元素答案:A67. 在Qt中,QMap类的主要用途是什么?A. 提供键值对存储B. 提供有序列表存储C. 提供无序列表存储D. 提供图形视图存储答案:A68. 在Qt中,QStandardItemModel类的主要用途是什么?A. 提供标准的数据模型B. 提供自定义的数据模型C. 提供网络的数据模型D. 提供图形的数据模型答案:A69. 在Qt中,如何在QML中使用自定义插件?A. 使用import语句B. 使用require语句C. 使用include语句D. 使用load语句答案:A70. 在Qt中,如何在QML中处理手势事件?A. 使用GestureArea元素B. 使用MouseArea元素C. 使用TouchArea元素D. 使用Keys元素答案:A71. 在Qt中,QTemporaryFile类的主要用途是什么?A. 创建和管理临时文件B. 创建和管理永久文件C. 管理文件缓存D. 管理文件锁答案:A72. 在Qt中,如何在QML中实现数据绑定?A. 使用Bindings元素B. 使用Connections元素C. 使用Bindings属性D. 使用Connections属性答案:A73. 在Qt中,如何确保自定义QWidget在其窗口小部件上绘制内容时支持抗锯齿?A. 使用QPainter::AntialiasingB. 使用QWidget::smoothRenderingC. 使用QPaintDevice::AntialiasingD. 使用QPaintEngine::Antialiasing答案:A74. 在QML中,哪种类型的属性用于将一个属性绑定到另一个属性?A. BindingB. PropertyAliasC. PropertyBindingD. ValueBinding答案:C75. 在Qt中,哪个类提供了2D图形项的场景管理?A. QGraphicsSceneB. QGraphicsViewC. QGraphicsItemD. QGraphicsWidget答案:A76. 下面的代码段将输出什么?QMap<int, QString> map;map.insert(1, "one");map.insert(2, "two");map.insert(3, "three");qDebug() << map.value(2);A. oneB. twoC. threeD. 空字符串答案:B77. 在Qt中,如何创建一个可以处理鼠标点击事件的自定义QWidget?A. 重写mousePressEvent()B. 重写mouseClickEvent()C. 重写mouseEvent()D. 重写mouseReleaseEvent()答案:A78. 在QML中,如何定义一个可重用的UI组件?A. 使用Component元素B. 使用ReusableElement元素C. 使用T emplate元素D. 使用Module元素答案:A79. 在Qt中,QFile类的主要功能是什么?A. 提供文件的读写操作B. 提供文件路径管理C. 提供文件压缩功能D. 提供文件加密功能答案:A80. 在Qt中,如何捕获和处理特定的键盘事件?A. 重写keyPressEvent()B. 重写keyEvent()C. 重写keyInputEvent()D. 重写keyboardEvent()答案:A81. 下面代码段将输出什么?QString str = "Hello, Qt!";qDebug() << str.mid(7, 2);A. HeB. QtC. loD. o,答案:B82. 在Qt中,QML的哪种类型用于实现动画效果?A. TimerB. TransitionC. BehaviorD. SequentialAnimation答案:D83. 在Qt中,如何在QML中注册一个C++类型,使其可以在QML中使用?A. qmlRegisterType()B. qmlRegisterClass()C. qmlRegisterObject()D. qmlRegisterComponent()答案:A84. 下面代码段将输出什么?QVector<int> vec;vec << 1 << 2 << 3 << 4;qDebug() << vec.at(2);A. 1B. 2C. 3D. 4答案:C85. 在Qt中,如何在QWidget中启用拖放功能?A. setAcceptDrops(true)B. setDragEnabled(true)C. setDropEnabled(true)D. setDragAndDropEnabled(true)答案:A86. 在QML中,如何在组件加载时执行初始化代码?A. 使用Component.onCompletedB. 使用Loader.onLoadedC. 使用ApplicationWindow.onReadyD. 使用Window.onShown答案:A87. 在Qt中,如何在自定义QWidget中处理窗口调整大小事件?A. 重写resizeEvent()B. 重写sizeEvent()C. 重写changeEvent()D. 重写layoutEvent()答案:A88. 在Qt中,QNetworkAccessManager类的主要功能是什么?A. 处理网络请求和回复B. 管理网络接口C. 提供网络安全功能D. 管理多线程网络操作答案:A89. 在QML中,哪种类型的容器可以用于布局子组件?A. RowB. ContainerC. BoxD. Pane答案:A90. 在Qt中,如何在QPainter中绘制一个圆角矩形?A. 使用drawRoundedRect()方法B. 使用drawEllipse()方法C. 使用drawCircle()方法D. 使用drawArc()方法答案:A91. 下面代码段将输出什么?QSet<int> set;set << 1 << 2 << 3 << 4;qDebug() << set.contains(3);A. trueB. falseC. 3D. 1答案:A92. 在Qt中,QSortFilterProxyModel类的主要功能是什么?A. 提供数据模型的排序和过滤功能B. 提供数据模型的多线程访问C. 提供数据模型的网络访问D. 提供数据模型的图形视图答案:A93. 在QML中,如何绑定一个属性到一个JavaScript函数的返回值?A. 使用Binding元素B. 使用FunctionBinding元素C. 使用PropertyBinding元素D. 直接在属性中使用JavaScript表达式答案:D94. 在Qt中,如何在QGraphicsScene中添加一个矩形项?A. 使用addRect()方法B. 使用addItem()方法C. 使用addRectangle()方法D. 使用createRect()方法答案:A95. 在Qt中,QDir类的主要功能是什么?A. 提供目录的操作功能B. 提供文件的读写功能C. 提供网络请求的功能D. 提供数据库访问的功能答案:A96. 下面代码段将输出什么?QList<int> list;list << 5 << 10 << 15 << 20;qDebug() << list.indexOf(15);A. 0B. 1C. 2D. 3答案:C97. 在Qt中,如何在QML中使用自定义的C++类型?A. 使用qmlRegisterType()函数注册类型B. 使用qmlRegisterModule()函数注册模块C. 使用qmlRegisterComponent()函数注册组件D. 使用qmlRegisterClass()函数注册类答案:A98. 在Qt中,QGraphicsItem类的主要功能是什么?A. 表示一个图形视图项B. 管理图形视图的场景C. 提供图形视图的渲染功能D. 管理图形视图的窗口答案:A99. 在QML中,如何创建一个定时器?A. 使用Timer元素B. 使用Clock元素C. 使用Ticker元素D. 使用Counter元素答案:A100. 在Qt中,如何在QTableView中设置模型?A. 使用setModel()方法B. 使用addModel()方法C. 使用attachModel()方法D. 使用applyModel()方法答案:A。
Qt笔试题集锦-单选48题+多选34题(带答案)
Qt笔试题单选48题+多选34题(带答案)1. 在Qt中,如何在QML中定义一个自定义的信号?A. 使用signal关键字B. 使用emit关键字C. 使用declare关键字D. 使用define关键字答案:A2. 在Qt中,如何在QGraphicsScene中添加文本项?A. 使用addText()方法B. 使用addItem()方法C. 使用addLabel()方法D. 使用createText()方法答案:A3. 下面代码段的输出是什么?QVector<int> vec = {1, 2, 3, 4};vec.replace(1, 5);qDebug() << vec;A. (1, 2, 3, 4)B. (1, 5, 3, 4)C. (5, 2, 3, 4)D. (1, 2, 5, 4)答案:B4. 在Qt中,如何确保QPainter对象支持在抗锯齿模式下进行绘图?A. QPainter::setAntialiasing(true)B. QPainter::AntialiasingC. QPainter::setRenderHint(QPainter::Antialiasing, true)D. QPainter::setSmoothRendering(true)答案:C5. 下面代码段的输出是什么?QHash<QString, int> hash;hash["one"] = 1;hash["two"] = 2;hash["three"] = 3;qDebug() << hash.size();A. 1B. 2C. 3D. 0答案:C6. 在Qt中,如何在一个QWidget上设置自定义绘图背景?A. 重写paintEvent()B. 重写drawEvent()C. 重写renderEvent()D. 重写backgroundEvent()答案:A7. 下面代码段的输出是什么?QList<int> list = {1, 2, 3, 4};list.removeOne(3);qDebug() << list;A. (1, 2, 3, 4)B. (1, 2, 4)C. (2, 3, 4)D. (1, 3, 4)答案:B8. 在Qt中,如何在QWidget中捕获并处理键盘事件?A. 重写keyPressEvent()B. 重写keyEvent()C. 重写keyboardEvent()D. 重写keyInputEvent()答案:A9. 下面代码段的输出是什么?QString str = "Hello, World!";qDebug() << str.section(',', 1, 1).trimmed();A. "Hello"B. " World!"C. "World"D. " World"答案:C10. 在Qt中,如何设置QMainWindow的中央小部件?A. setCentralWidget()B. addCentralWidget()C. setMainWidget()D. addMainWidget()答案:A11. 下面代码段的输出是什么?QSet<int> set = {1, 2, 3, 4};set.remove(2);qDebug() << set;A. {1, 2, 3, 4}B. {1, 3, 4}C. {2, 3, 4}D. {1, 2, 4}答案:B12. 在Qt中,QTimer对象的用途是什么?A. 提供线程管理B. 提供定时功能C. 提供信号槽连接D. 提供文件管理答案:B13. 下面代码段的输出是什么?QString str = "abcdef";qDebug() << str.contains("cd");A. trueB. falseC. 1D. 0答案:A14. 在Qt中,如何在QPushButton上设置图标?A. setIcon()B. addIcon()C. setButtonIcon()D. addButtonIcon()答案:A15. 下面代码段的输出是什么?QVector<int> vec = {10, 20, 30, 40};qDebug() << vec.first() << st();A. 10 40B. 10 30C. 20 40D. 20 30答案:A16. 在Qt中,如何在QGraphicsScene中添加一个图形项?A. addItem()B. addGraphic()C. appendItem()D. insertGraphic()答案:A17. 下面代码段的输出是什么?QMap<QString, int> map;map.insert("A", 1);map.insert("B", 2);map.insert("C", 3);qDebug() << map.value("B");A. 1B. 2C. 3D. 0答案:B18. 在Qt中,如何捕获QWidget的鼠标移动事件?A. 重写mouseMoveEvent()B. 重写mouseEvent()C. 重写mouseDragEvent()D. 重写mouseTrackEvent()答案:A19. 下面代码段的输出是什么?QList<int> list = {1, 2, 3, 4};list.append(5);qDebug() << list.size();A. 4B. 5C. 6D. 7答案:B20. 在Qt中,如何在QTableView中设置列宽?A. setColumnWidth()B. setColumnSize()C. setWidth()D. setColumnSpan()答案:A21. 下面代码段的输出是什么?QHash<int, QString> hash;hash[1] = "one";hash[2] = "two";hash[3] = "three";qDebug() << hash.contains(2);A. trueB. falseC. 1D. 0答案:A22. 在Qt中,如何在QGraphicsScene中添加一个文本项?A. addText()B. addLabel()C. addItem()D. addString()答案:A23. 下面代码段的输出是什么?QVector<int> vec = {1, 2, 3, 4};vec.clear();qDebug() << vec.isEmpty();A. trueB. falseC. 1D. 0答案:A24. 在Qt中,如何在QComboBox中添加一个选项?A. addItem()B. appendItem()C. insertItem()D. setItem()答案:A25. 下面代码段的输出是什么?QString str = "12345";qDebug() << str.at(2);A. "1"B. "2"C. "3"D. "4"答案:C26. 在Qt中,如何在QWidget中启用鼠标追踪?A. setMouseTracking(true)B. enableMouseTracking(true)C. setTracking(true)D. enableTracking(true)答案:A27. 下面代码段的输出是什么?QList<int> list = {1, 2, 3, 4};list.replace(2, 5);qDebug() << list;A. (1, 2, 3, 4)B. (1, 2, 5, 4)C. (1, 5, 3, 4)D. (5, 2, 3, 4)答案:B28. 在Qt中,如何在QWidget中捕获窗口关闭事件?A. 重写closeEvent()B. 重写destroyEvent()C. 重写exitEvent()D. 重写shutdownEvent()答案:A29. 下面代码段的输出是什么?QVector<int> vec = {1, 2, 3, 4};vec.replace(1, 5);qDebug() << vec;B. (1, 5, 3, 4)C. (5, 2, 3, 4)D. (1, 2, 5, 4)答案:B30. 下面代码段的输出是什么?QHash<QString, int> hash;hash["one"] = 1;hash["two"] = 2;hash["three"] = 3;qDebug() << hash.size();A. 1B. 2C. 3D. 0答案:C31. 下面代码段的输出是什么?QList<int> list = {1, 2, 3, 4};list.removeOne(3);qDebug() << list;A. (1, 2, 3, 4)C. (2, 3, 4)D. (1, 3, 4)答案:B32. 下面代码段的输出是什么?QString str = "Hello, World!";qDebug() << str.section(',', 1, 1).trimmed();A. "Hello"B. " World!"C. "World"D. " World"答案:C33. 下面代码段的输出是什么?QSet<int> set = {1, 2, 3, 4};set.remove(2);qDebug() << set;A. {1, 2, 3, 4}B. {1, 3, 4}C. {2, 3, 4}D. {1, 2, 4}答案:B34. 下面代码段的输出是什么?QString str = "abcdef";qDebug() << str.contains("cd");A. trueB. falseC. 1D. 0答案:A35. 下面代码段的输出是什么?QVector<int> vec = {10, 20, 30, 40};qDebug() << vec.first() << st();A. 10 40B. 10 30C. 20 40D. 20 30答案:A36. 下面代码段的输出是什么?QMap<QString, int> map;map.insert("A", 1);map.insert("B", 2);map.insert("C", 3);qDebug() << map.value("B");A. 1B. 2C. 3D. 0答案:B37. 下面代码段的输出是什么?QList<int> list = {1, 2, 3, 4};list.append(5);qDebug() << list.size();A. 4B. 5C. 6D. 7答案:B38. 下面代码段的输出是什么?QHash<int, QString> hash;hash[1] = "one";hash[2] = "two";hash[3] = "three";qDebug() << hash.contains(2);A. trueB. falseC. 1D. 0答案:A39. 下面代码段的输出是什么?QVector<int> vec = {1, 2, 3, 4};vec.clear();qDebug() << vec.isEmpty();A. trueB. falseC. 1D. 0答案:A40. 下面代码段的输出是什么?QString str = "12345";qDebug() << str.at(2);A. "1"B. "2"C. "3"D. "4"答案:C41. 下面代码段的输出是什么?QList<int> list = {1, 2, 3, 4};list.replace(2, 5);qDebug() << list;A. (1, 2, 3, 4)B. (1, 2, 5, 4)C. (1, 5, 3, 4)D. (5, 2, 3, 4)答案:B42. 下面代码段的输出是什么?QSet<int> set = {1, 2, 3, 4};qDebug() << set.size();A. 1B. 2C. 3D. 4答案:D43. 下面代码段的输出是什么?QMap<QString, int> map;map.insert("key1", 1);map.insert("key2", 2);map.insert("key3", 3);qDebug() << map.keys().contains("key2");A. trueB. falseC. 1D. 0答案:A44. 下面代码段的输出是什么?QString str = "Hello Qt!";qDebug() << str.indexOf("Qt");A. 1B. 0C. 6D. 5答案:C45. 下面代码段的输出是什么?QVector<int> vec = {1, 2, 3, 4, 5};vec.remove(1);qDebug() << vec;A. (1, 2, 3, 4, 5)B. (1, 3, 4, 5)C. (2, 3, 4, 5)D. (1, 3, 5)答案:B46. 下面代码段的输出是什么?QMap<int, QString> map;map.insert(1, "one");map.insert(2, "two");map.insert(3, "three");map.remove(2);qDebug() << map.size();A. 1B. 2C. 3D. 0答案:B47. 下面代码段的输出是什么?QString str = "OpenAI";qDebug() << str.left(4);A. "Open"B. "AI"C. "OpenAI"D. "penA"答案:A48. 下面代码段的输出是什么?QVector<int> vec = {1, 2, 3, 4};vec.swap(1, 3);qDebug() << vec;A. (1, 2, 3, 4)B. (1, 4, 3, 2)C. (4, 2, 3, 1)D. (1, 3, 2, 4)答案:B多选题1. 下面哪些类是QObject的直接子类?A. QWidgetB. QTimerC. QThreadD. QString答案:A, B, C2. 以下哪些关于信号和槽的描述是正确的?A. 信号和槽可以跨线程连接B. 槽函数必须是QObject的成员函数C. 自定义信号必须在signals关键字下声明D. 槽函数可以是普通函数答案:A, C, D3. 以下哪些类支持QPainter的绘图操作?A. QPixmapB. QImageC. QSvgRendererD. QPicture答案:A, B, D4. 以下哪些关于QEventLoop的描述是正确的?A. QEventLoop可以用于实现事件驱动的编程B. QEventLoop可以嵌套使用C. QEventLoop必须在主线程中运行D. QEventLoop可以手动停止答案:A, B, D5. 下面哪些类可以用于处理XML数据?A. QDomDocumentB. QXmlStreamReaderC. QXmlStreamWriterD. QJsonDocument答案:A, B, C6. 以下哪些是QVariant类支持的数据类型?A. intB. doubleC. QStringD. QVector答案:A, B, C7. 下面哪些类可以用于管理应用程序的配置设置?A. QSettingsB. QConfigC. QPreferencesD. QIniSettings答案:A8. 以下哪些QNetworkAccessManager的操作类型是正确的?A. GETB. POSTC. PUTD. DELETE答案:A, B, C, D9. 下面哪些QMainWindow的区域可以放置小部件?A. CentralWidgetB. ToolBarAreaC. StatusBarD. DockWidgetArea答案:A, B, D10. 以下哪些关于QThread的描述是正确的?A. QThread不能直接创建线程B. QThread::run()函数必须重写C. moveToThread()可以将QObject对象移动到另一个线程D. QThread可以使用信号和槽与主线程通信答案:B, C, D11. 下面哪些类可以用于处理音频数据?A. QMediaPlayerB. QAudioInputC. QSoundD. QAudioOutput答案:A, B, D12. 以下哪些是QGraphicsView的功能?A. 支持平移和缩放B. 支持鼠标事件C. 支持多场景显示D. 支持自定义绘图答案:A, B, D13. 下面哪些关于QTimer的描述是正确的?A. QTimer可以单次触发或周期性触发B. QTimer必须在主线程中使用C. QTimer::timeout()信号可以连接到槽函数D. QTimer可以用于精确定时任务答案:A, C14. 以下哪些类支持多媒体文件的播放?A. QMediaPlayerB. QSoundEffectC. QVideoWidgetD. QMediaRecorder答案:A, B15. 下面哪些QWidget的事件处理函数是有效的?A. mousePressEvent()B. keyPressEvent()C. paintEvent()D. wheelEvent()答案:A, B, C, D16. 以下哪些是QAbstractItemModel的子类?A. QStandardItemModelB. QFileSystemModelC. QStringListModelD. QTableWidgetItem答案:A, B, C17. 下面哪些关于Qt容器类的描述是正确的?A. QList可以存储任何类型的数据B. QMap按键值对存储数据C. QVector是一个动态数组D. QSet是一个无序集合答案:A, B, C, D18. 以下哪些类可以用于处理JSON数据?A. QJsonDocumentB. QJsonArrayC. QJsonObjectD. QJsonValue答案:A, B, C, D19. 下面哪些类可以用于网络请求?A. QTcpSocketB. QUdpSocketC. QHttpServerD. QNetworkAccessManager答案:A, B, D20. 以下哪些是QFile类的功能?A. 读取和写入文件B. 创建和删除文件C. 文件重命名D. 文件权限管理答案:A, B, C, D21. 以下关于"QList" 和"QVector" 的描述哪些是正确的?A. "QList" 可以存储任何类型的数据,包括指针和复杂对象。
qt期末测试题及答案
qt期末测试题及答案以下是qt期末测试题及答案:第一部分:选择题(共40题,每题1分,共40分)在每小题所给的四个选项中,只有一项是最符合题目要求的。
请你将所选答案的字母标在答题卡上。
1. 下列哪个选项是qt中常用的图形界面开发工具?A) Visual StudioB) EclipseC) Qt CreatorD) Xcode2. Qt中的信号和槽机制是用来实现什么功能的?A) 处理用户输入B) 处理文件读写C) 进行对象间通信D) 进行数据计算3. 在Qt中,哪个类用于存储和操作日期和时间?A) QTimerB) QDateTimeC) QThreadD) QEventLoop4. 下列哪个选项是正确的Qt对象的父子关系的描述?A) 子对象的生命周期由父对象管理B) 子对象的生命周期与父对象无关C) 父对象的生命周期由子对象管理D) 父对象的生命周期与子对象无关5. 在Qt中,哪个类用于绘制2D图形?A) QTimerB) QPainterC) QThreadD) QEventLoop......(省略其他35个选择题)第二部分:填空题(共10题,每题2分,共20分)根据题意,在每题的空格内填入最合适的单词或短语。
1. Qt_Creator 是一个用于开发Qt应用程序的集成开发工具(IDE)。
2. 在Qt中,_QWidget是所有用户界面类的基类。
3. QT信号和槽机制是Qt提供的一种_机制,用于实现对象间的通信。
4. 在Qt中,_QMainWindow是用于创建应用程序主窗口的类。
5. 在Qt中,可以使用_布局来管理窗口中的控件。
......(省略其他5个填空题)第三部分:编程题(共2题,每题20分,共40分)请根据以下要求,在指定的代码框中编写代码。
题目一:要求:请编写一个Qt程序,实现一个简单的登录界面。
要求界面包含一个标签用于显示欢迎信息,两个文本框用于输入用户名和密码,以及一个按钮用于登录。
(完整版)QT理论试题及答案
QT理论试题1.以下关于QT的描述正确的是:a.是一个不跨平台的C++图形用户界面b.由挪威TrollTech公司出品c.只支持Unix、Linuxd.QT API和开发工具对所支持的平台是不一致的2.以下关于QT的描述不正确的是:a.QT支持2D图形渲染b.QT支持3D图形渲染c.QT支持OpenGLd.QT不支持XML3.下关于不正确的是:a.是面向嵌入式系统的Qt版本b.是Qt的嵌入式窗口c.基于Windows平台的开发工具d.是完整的自包含C++ GUI的开发工具4.内部对字符集的处理采用以下哪个标准:a.UNICODEb.ASCIIc.GB2312d.ISO 8859-15.以下关于Qt描述不正确的是a.是基于面向对象的C++语言b.提供了signal和slot的对象通信机制c.有可查询和可设计属性d.没有字符国际化6.以下描述正确的是:a.标准的C++对象模型可有效的支持运行时参数b.标准的C++对象模型的静态特性十分灵活c.图形用户界面编程无需运行得高效d.图形用户界面编程无需运行得高灵活性7.以下不是QT增加的特性:a.有效的对象通信signal和slotb.可查询和可设计的对象c.事件及事件过滤器d.不使用指针8.以下描述正确的是:a.元对象系统可以对信号使用模板b.元对象系统可以对槽使用模板c.Qt可在多个平台的应用程序中完全应用模板d.Qt不能在多个平台的应用程序中完全应用模板9.以下关于moc叙述正确的是:a.moc即Mult Object Compilerb.可产生能被任何标准C++编译访问的附加C++代码c.moc必须手动调用d.类声明中有无Q_OBJECT无所谓10.以下关于信号和槽的描述正确的是:a.用于SOCKET网络通信b.用于UDP网络通信e.用于对象间通信c.用于串口通信11.以下关于信号/槽的叙述不正确的是:a.信号与槽通过connected函数任意相连b.信号/槽机制在QObject类中实现c.从QWidget类继承的所有类可以包含信号和槽d.当对象状态变化时信号被发送,对象不关心是否有其他对象接收到该信号12.以下类声明中有几处错误?class M : public Qobject{public :M ( ) ;int value ( ) const{return va ;}public slot :void setValue ( int ) ;signals :void valueChanged ( int ) ;private:int va ;};a. 5b. 4c. 3d. 213.设有如下声明void M : : setValue ( int v ){if ( v != va ){va = v ;emit valueChanged ( v ) ;}}则对于如下语句M a , b ;connect ( &a , SIGNAL ( valueChanged ( int ) ) , &b , SLOT ( setValue ( int ) ) ) ;b.setValue ( 11 ) ;a.setValue ( 12 ) ;b.value ( ) ;执行后,值为:a. 11 11b. 12 12c. 11 12d. 12 11 14.以下关于槽的描述正确的是:a.槽具有public和protected 2个类b.protected slots 表示只有该类的子类的信号才能连接c.槽是普通成员函数d.不能有private slots15.以下关于元对象系统不正确的是a.元对象系统只是用于处理对象间通信的信号/槽机制b.元对象系统可处理运行时的类型信息和动态属性系统c.元对象系统基于Qobject类d.bc都对16.不是元对象代码实现的特征的是:a.提供信号/槽机制b.Class.forName ( )在运行的时候返回类名称c.tr ( )用于国际化中的字符串翻译d.metaObject ( )返回该类所关联的元对象17.以下关于Q_OBJECT叙述不正确的是:a.类定一种声明了Q_OBJECT后,该类才能使用元对象系统相关的特性b.Q_OBJECT对所有类都无关紧要c.QObject的子类中未实现信号和槽也可使用Q_OBJECTd.QObject的子类中未实现属性也可使用Q_OBJECT18.以下关于元对象编译器的叙述不正确的是:a.元对象编译器不展开#define ,但可展开#includeb.元对象编译器不展开#includec.忽略遇到的所有预处理程序d.无法处理所有C++语法19.有如下语句class YourClass : public Qobject{Q_OBJECTpublic slots :void apply ( void ( *apply ) ( List * , void * ) , char * ) ;}以下正确的是a.完全正确b.可以没有Q_OBJECTc.slots关键字有误d.函数指针不能作为信号和槽的参数20.如下叙述不正确的是:a.不能把继承的成员函数升级为共有状态b.宏不能用在信号和槽的参数中c.嵌套类不能放在信号部分d.嵌套类可以放在槽部分21.有如下声明:class Abc : public Qobject{①Q_OBJECT②public :③ Q_PROPERTY(Priority priority READ priority WRITEsetPriority )④Q_ENUMS ( Priority )enum Priority { High , Low , VeryHigh , VeryLow };void setPriority ( Priority ) ;Priority priority ( ) const ;};关于属性声明的位置以下正确的是:a.原位置正确①②③④b.原位置不正确,应为①③④②c.原位置不正确,应为①③②④22.以下关于属性的叙述不正确的是:a.基于元对象系统b.在类声明中用宏声明c.属性不是一个类的成员d.属性只能在继承于QObject的子类中声明23.以下关于QObject类叙述不正确的是:a.是所有Qt对象的基类b.QObject对象树是一个静态的QObjectList类对象object_treesc.object_trees链表中存有部分对象指针d.通过object_trees链表可查询到所有的对象24.以下是事件处理方法的是:a.重载QApplication : : notify ( )b.重载QObject : : event ( )c.重载Qt基类事件处理函数d.以上全是25.以下关于定时器的叙述不正确的是:a.多数平台支持2ms精度的定时器b.使用定时器,可以用QTimer类c.使用定时器,可以用QObject类的定时器d.定时器精度依赖于操作系统和硬件26.以下关于QObject类定时器的叙述正确的是:a.当处理器正忙于其它事件的处理时,定时器仍可以立即触发b.当定时器触发时,应用程序会发送QtimerEventc.用startTimer ( )开始一个定时器,如果成功则返回0d.用startTimer ( )开始一个定时器,如果失败则返回-127.以下是QObject提供的字符串翻译函数的选项是:a.translateit ( ) , trUtf8 ( )b.translation ( )c.tr ( ) , trUtf_8 ( )d.tr ( ) , trUtf8 ( )28.以下关于元对象的叙述不正确的是:a.每个在类声明中含有Q_OBJECT宏的类都有一个对应的元对象b.每个在类声明中含有Q_OBJECT宏的类都有一个对应的QMetaObject类对象c.元对象是动态的d.一个类可能含有多个元对象与之对应29.窗口部件的父类包括:a.QWidgetb.QFramec.QScrollViewd.以上全是30.以下关于QWidget类、QFrame类和QScrollView类的关系叙述正确的是:a.三个类是兄弟关系b.三个类是继承关系:QWidget为祖父,QFrame为父,QScrollView为子c.三个类是继承关系:QFrame为祖父,QWidget为父,QScrollView为子d.三个类是继承关系:QFrame为祖父,QWidget与QScrollView互为兄弟31.以下关于Qt风格叙述正确的是:a.Qt的风格类的基类是QStyle类b.QStyle的多数成员函数即有声明也有实现c.其实现只能在QCommonStyle类中通过重载来完成d.其实现只能在QWindowStyle类中通过重载来完成32.关于布局功能的叙述,以下正确的是:a.在布局空间中布置子窗口部件b.设置子窗口部件间的空隙c.管理在布局空间中布置子窗口部件d.以上都对33.以下关于QLayout的描述不正确的是:a.是的布局系统抽象基类b.其中,属性int margin代表布局的外边框的宽度c.其中,属性int spacing代表布局内的窗口部件的大小d.其中,属性ResizeMode resizeMode代表布局的扩展方式34.布局窗口部件包括:a.QHBoxb.QVBoxc.QGridd.以上全有35.以下叙述不正确的是:a.QHBox允许子窗口部件按水平、垂直和网格排列b.QVBox允许子窗口部件按水平、垂直和网格排列c.QGrid允许子窗口部件按水平、垂直和网格排列d.以上全不对36.以下各项中,是QLayout子类的是:a.QGridLayoutb.QHBoxLayoutc.QVBoxLayoutd.b和c37.如果对默认放置位置不满意,则须采取相应的措施,以下哪项不是:a.创建没有父布局的布局对象b.调用addLayout ( )把这个布局插入到其他布局中c.没有办法d.a和b38.以下关于集合类描述不正确的是:a.它是装有多个条目的容器b.每个条目是某种数据结构c.集合类可对容器中的条目做插入操作d.集合类不能对容器中的条目做删除操作39.以下各项中属于基于值的集合类是:a.QCacheb.QMapc.QPtrListd.QDict40.以下各项中属于基于指针的集合类的是:a.QIntCacheb.QValueStakc.QValueVectord.QValueList41.以下各项中既不基于指针也不基于值的是:a.QIntDictb.QPtrListc.QPtrStackd.QMemArray42.所有基于指针的集合继承了如下哪个类?a.QGCacheb.QGVectorc.QPtrCollectiond.QGList43.当插入一个条目到一个集合时,如下不正确的是:a.仅拷贝指针而不拷贝条目本身的,称“浅拷贝”b.不允许只拷贝指针而不拷贝条目本身c.拷贝所有条目的数组到集合中是可能的d.选项C又称“深拷贝”44.以下各项中不是与Qt线程相关的类的是:a.QMutexb.QSemaphorec.QThreadd.以上都不是45.以下关于Qt线程叙述正确的是:a.Qt中提供了Thread线程类b.Qt中提供了QThread线程类c.通过重载Thread : : run ( ) 函数定义线程的执行内容d.通过重载QThread : : _run ( ) 函数定义线程的执行内容46.有如下关于线程的代码:class Your_Class : public QThread{public :virtual void run ( ) ;} ;void Your_Class : run ( ){for ( int i=0 ; i < 100 ; i++ ) ;}int main ( ){Your_Class a ;a . run ( ) ;return 0 ;}其中有几处错误:a. 1b. 2c. 3d. 447.以下关于线程编程时的注意事项中不正确的是:a.在持有Qt库互斥量时必须执行阻塞操作b.在调用除了Qt容器和工具类外的任何内容之前,锁定Qt应用程序互斥量c.只在GUI线程中使用QNetwork类d.不要在应用程序中把普通Qt库与支持线程的Qt库混用48.以下不属于拖放机制的是:a.拖动b.剪贴板c.放下d.以上都不是49.以下关于拖动的叙述错误的是:a.在拖动之后,QDragObject被立即删除b.拖放明显完成后,这个QDragObject要被保存c.QDragObject可能要与其他进程通信d.QDragObject对象最后由Qt删除50.在一些简单情况下,拖放的目标接收一个被拖动数据的拷贝,并且由源决定是否删除初始的拖动对象,这是QDropEvent中的什么操作?a.Copyb.Movec.Linkd.以上都不是51.Qt/Embedded的开发公司是:a.Microsoftb.Sunc.Oracled.Trolltech52.以下各项中关于焦点定位的习惯方式叙述错误的是:a.用户按Tab键b.用户按Enter键c.b选项不是d.用户使用鼠标滚轮53.以下关于Qt/Embedded叙述不正确的是:a.是C/S结构b.类库完全采用C语言c.采用framebuffer作为底层图形接口d.将外部输入设备抽象为keyboard和mouse输入事件54.以下关于字体的叙述正确的是:a.Qt/Embedded用QFontManager管理字体,与字体相关的类在服务器端运行b.Qt/Embedded用QFontManager管理字体,与字体相关的类在客户端运行c.Qt/Embedded用FontManager管理字体,与字体相关的类在服务器端运行d.Qt/Embedded用FontManager管理字体,与字体相关的类在客户端运行55.以下各项中与显示无关的类是:a.QScreenb.QLockc.QWSManagerd.QDiskFont56.以下不是Qt支持的图像格式是:a.JPGb.PNGc.BMPd.XPM57.以下叙述正确的是:a.Qt支持GIF格式图像,且可以存储它们b.Qt支持GIF格式图像,但不可以存储它们c.Qt不支持GIF格式图像,但可以存储它们d.Qt不支持GIF格式图像,且不可以存储它们58.用QPainter的转换函数对图像做转换后,若要恢复图像的原样,则以下正确的是:a.无法实现b.可以实现,用QPainter : : resetForm ( ) 只能恢复最近一次的转换c.可以实现,用QPainter : : resetForm ( ) 可以撤销所有的转换操作59.用QPixmap对象打开GIF动画,以下叙述正确的是:a.可以看到动画b.看不到任何画面c.只能看到动画的第一帧d.只能看到动画的最后一帧60.以下关于Qt/Embedded客户端与服务器的描述不正确的是:a.客户端可以有多个b.服务器可以有多个c.客户端只有一个d.服务器只有一个。
QT理论试题及答案
QT理论试题1.以下关于QT的描述正确的是:a.是一个不跨平台的C++图形用户界面b.由挪威TrollTech公司出品c.只支持Unix、Linuxd.QT API和开发工具对所支持的平台是不一致的2.以下关于QT的描述不正确的是:a.QT支持2D图形渲染b.QT支持3D图形渲染c.QT支持OpenGLd.QT不支持XML3.下关于不正确的是:a.是面向嵌入式系统的Qt版本b.是Qt的嵌入式窗口c.基于Windows平台的开发工具d.是完整的自包含C++ GUI的开发工具4.内部对字符集的处理采用以下哪个标准:a.UNICODEb.ASCIIc.GB2312d.ISO 8859-15.以下关于Qt描述不正确的是a.是基于面向对象的C++语言b.提供了signal和slot的对象通信机制c.有可查询和可设计属性d.没有字符国际化6.以下描述正确的是:a.标准的C++对象模型可有效的支持运行时参数b.标准的C++对象模型的静态特性十分灵活c.图形用户界面编程无需运行得高效d.图形用户界面编程无需运行得高灵活性7.以下不是QT增加的特性:a.有效的对象通信signal和slotb.可查询和可设计的对象c.事件及事件过滤器d.不使用指针8.以下描述正确的是:a.元对象系统可以对信号使用模板b.元对象系统可以对槽使用模板c.Qt可在多个平台的应用程序中完全应用模板d.Qt不能在多个平台的应用程序中完全应用模板9.以下关于moc叙述正确的是:a.moc即Mult Object Compilerb.可产生能被任何标准C++编译访问的附加C++代码c.moc必须手动调用d.类声明中有无Q_OBJECT无所谓10.以下关于信号和槽的描述正确的是:a.用于SOCKET网络通信b.用于UDP网络通信e.用于对象间通信c.用于串口通信11.以下关于信号/槽的叙述不正确的是:a.信号与槽通过connected函数任意相连b.信号/槽机制在QObject类中实现c.从QWidget类继承的所有类可以包含信号和槽d.当对象状态变化时信号被发送,对象不关心是否有其他对象接收到该信号12.以下类声明中有几处错误?class M : public Q o bject{ Q_OBJECTpublic :M () ;int value ( ) const{return va ;}public slot s:void setValue (int );signals :void valueChanged ( int );private:int va ;};a. 5b. 4c. 3d. 213.设有如下声明void M ::setValue ( int v ){if ( v != va ){va = v ;emit valueChanged (v ) ;}}则对于如下语句M a , b ;connect ( &a , SIGNAL ( valueChanged ( int )),&b , SLOT ( setValue ( int ) )) ;b.setValue (11 );a.setValue (12 );b.value () ;执行后,值为:a. 11 11 b。
qt操作试题及答案
qt操作试题及答案QT操作试题及答案1. QT中如何创建一个新的项目?- 打开QT Creator,点击“文件”菜单,选择“新建文件或项目”。
- 在弹出的窗口中选择“应用程序”,然后选择“Qt Widgets应用程序”。
- 点击“选择...”,输入项目名称和位置,点击“下一步”。
- 选择“Qt Widgets应用程序”模板,点击“下一步”。
- 选择“Qt版本”,点击“下一步”。
- 配置项目设置,点击“完成”。
2. 如何在QT中添加一个按钮控件?- 打开QT Designer,选择“工具箱”中的“按钮”控件。
- 将按钮拖动到主窗口的适当位置。
- 双击按钮,进入编辑模式,可以修改按钮的属性如文本、大小等。
3. 如何为按钮添加点击事件处理函数?- 在QT Designer中,选择按钮控件。
- 右键点击按钮,选择“转到槽...”。
- 在弹出的窗口中,选择“clicked()信号”。
- 点击“新建槽...”,输入槽函数的名称,例如`onButtonClicked`。
- 在生成的槽函数中编写事件处理代码。
4. QT中如何实现窗口的最小化和最大化功能?- 在主窗口的头文件中,添加两个槽函数声明,例如`onMinimizeClicked`和`onMaximizeClicked`。
- 在主窗口的实现文件中,为这两个槽函数添加实现代码。
- 在主窗口的构造函数中,连接窗口的最小化和最大化按钮的信号到相应的槽函数。
5. 如何使用QT创建一个菜单栏?- 在QT Designer中,点击“菜单栏”工具,然后将其拖动到主窗口的顶部。
- 右键点击菜单栏,选择“添加菜单”。
- 输入菜单名称,例如“文件”。
- 右键点击新添加的菜单,选择“添加动作”,输入动作名称,例如“退出”。
- 在槽函数中编写退出程序的代码。
6. QT中如何实现多线程?- 在QT中,可以使用`QThread`类来实现多线程。
- 创建一个继承自`QObject`的类,并将其移动到新的线程中。
qt期末考试题及答案
qt期末考试题及答案一、选择题(每题2分,共20分)1. Qt中,以下哪个类是用于创建图形界面的?A. QWidgetB. QApplicationC. QThreadD. QMutex2. 在Qt中,信号和槽机制用于实现什么?A. 多线程编程B. 事件处理C. 组件间通信D. 数据存储3. Qt的布局管理器中,以下哪个不是布局类型?A. QVBoxLayoutB. QHBoxLayoutC. GridLayoutD. ButtonLayout4. 下列哪个不是Qt的控件?A. QPushButtonB. QSliderC. QCheckBoxD. QDatabase5. Qt中的事件循环是如何实现的?A. 手动编写循环B. QApplication类自动管理C. QThread类实现D. QTimer类定时触发6. Qt的哪个模块提供了对数据库的支持?A. QtCoreB. QtGuiC. QtSqlD. QtNetwork7. 在Qt中,如何创建一个菜单?A. 使用QMenu类B. 使用QMenuBar类C. 使用QAction类D. 所有选项都是8. Qt的哪个类用于实现线程?A. QThreadB. QMutexC. QSemaphoreD. QThreadGroup9. Qt中,如何实现拖放功能?A. 使用QDrag类和QDropEvent类B. 使用QClipboard类C. 使用QTimer类D. 使用QEvent类10. Qt的哪个模块提供了网络编程功能?A. QtCoreB. QtGuiC. QtNetworkD. QtXml答案:1. A2. C3. D4. D5. B6. C7. D8. A9. A 10. C二、简答题(每题5分,共20分)1. 简述Qt的信号和槽机制的基本概念。
答:Qt的信号和槽机制是一种用于对象间通信的机制。
当一个对象的状态发生变化时,它可以发出一个信号,而其他对象可以连接到这个信号上,并定义相应的槽函数来响应这个信号。
QT理论试题及答案
Q T理论试题1.以下关于QT的描述正确的是:a.是一个不跨平台的C++图形用户界面b.由挪威TrollTech公司出品c.只支持Unix、Linuxd.QT API和开发工具对所支持的平台是不一致的2.以下关于QT的描述不正确的是:a.QT支持2D图形渲染b.QT支持3D图形渲染c.QT支持OpenGLd.QT不支持XML3.下关于不正确的是:a.是面向嵌入式系统的Qt版本b.是Qt的嵌入式窗口c.基于Windows平台的开发工具d.是完整的自包含C++ GUI的开发工具4.内部对字符集的处理采用以下哪个标准:a.UNICODEb.ASCIIc.GB2312d.ISO 8859-15.以下关于Qt描述不正确的是a.是基于面向对象的C++语言b.提供了signal和slot的对象通信机制c.有可查询和可设计属性d.没有字符国际化6.以下描述正确的是:a.标准的C++对象模型可有效的支持运行时参数b.标准的C++对象模型的静态特性十分灵活c.图形用户界面编程无需运行得高效d.图形用户界面编程无需运行得高灵活性7.以下不是QT增加的特性:a.有效的对象通信signal和slotb.可查询和可设计的对象c.事件及事件过滤器d.不使用指针8.以下描述正确的是:a.元对象系统可以对信号使用模板b.元对象系统可以对槽使用模板c.Qt可在多个平台的应用程序中完全应用模板d.Qt不能在多个平台的应用程序中完全应用模板9.以下关于moc叙述正确的是:a.moc即Mult Object Compilerb.可产生能被任何标准C++编译访问的附加C++代码c.moc必须手动调用d.类声明中有无Q_OBJECT无所谓10.以下关于信号和槽的描述正确的是:a.用于SOCKET网络通信b.用于UDP网络通信e.用于对象间通信c.用于串口通信11.以下关于信号/槽的叙述不正确的是:a.信号与槽通过connected函数任意相连b.信号/槽机制在QObject类中实现c.从QWidget类继承的所有类可以包含信号和槽d.当对象状态变化时信号被发送,对象不关心是否有其他对象接收到该信号12.以下类声明中有几处错误?class M : public Qobject{public :M ( ) ;int value ( ) const{return va ;}public slot :void setValue ( int ) ;signals :void valueChanged ( int ) ;private:int va ;};a. 5b. 4c. 3d. 213.设有如下声明void M : : setValue ( int v ){if ( v != va ){va = v ;emit valueChanged ( v ) ;}}则对于如下语句M a , b ;connect ( &a , SIGNAL ( valueChanged ( int ) ) , &b , SLOT ( setValue ( int ) ) ) ;( 11 ) ;( 12 ) ;( ) ;执行后,值为:a. 11 11b. 12 12c. 11 12d. 12 11 14.以下关于槽的描述正确的是:a.槽具有public和protected 2个类b.protected slots 表示只有该类的子类的信号才能连接c.槽是普通成员函数d.不能有private slots15.以下关于元对象系统不正确的是a.元对象系统只是用于处理对象间通信的信号/槽机制b.元对象系统可处理运行时的类型信息和动态属性系统c.元对象系统基于Qobject类d.bc都对16.不是元对象代码实现的特征的是:a.提供信号/槽机制b.( )在运行的时候返回类名称c.tr ( )用于国际化中的字符串翻译d.metaObject ( )返回该类所关联的元对象17.以下关于Q_OBJECT叙述不正确的是:a.类定一种声明了Q_OBJECT后,该类才能使用元对象系统相关的特性b.Q_OBJECT对所有类都无关紧要c.QObject的子类中未实现信号和槽也可使用Q_OBJECTd.QObject的子类中未实现属性也可使用Q_OBJECT18.以下关于元对象编译器的叙述不正确的是:a.元对象编译器不展开#define ,但可展开#includeb.元对象编译器不展开#includec.忽略遇到的所有预处理程序d.无法处理所有C++语法19.有如下语句class YourClass : public Qobject{Q_OBJECTpublic slots :void apply ( void ( *apply ) ( List * , void * ) , char * ) ;}以下正确的是a.完全正确b.可以没有Q_OBJECTc.slots关键字有误d.函数指针不能作为信号和槽的参数20.如下叙述不正确的是:a.不能把继承的成员函数升级为共有状态b.宏不能用在信号和槽的参数中c.嵌套类不能放在信号部分d.嵌套类可以放在槽部分21.有如下声明:class Abc : public Qobject{①Q_OBJECT②public :③ Q_PROPERTY(Priority priority READ priority WRITEsetPriority )④Q_ENUMS ( Priority )enum Priority { High , Low , VeryHigh , VeryLow };void setPriority ( Priority ) ;Priority priority ( ) const ;};关于属性声明的位置以下正确的是:a.原位置正确①②③④b.原位置不正确,应为①③④②c.原位置不正确,应为①③②④22.以下关于属性的叙述不正确的是:a.基于元对象系统b.在类声明中用宏声明c.属性不是一个类的成员d.属性只能在继承于QObject的子类中声明23.以下关于QObject类叙述不正确的是:a.是所有Qt对象的基类b.QObject对象树是一个静态的QObjectList类对象object_treesc.object_trees链表中存有部分对象指针d.通过object_trees链表可查询到所有的对象24.以下是事件处理方法的是:a.重载QApplication : : notify ( )b.重载QObject : : event ( )c.重载Qt基类事件处理函数d.以上全是25.以下关于定时器的叙述不正确的是:a.多数平台支持2ms精度的定时器b.使用定时器,可以用QTimer类c.使用定时器,可以用QObject类的定时器d.定时器精度依赖于操作系统和硬件26.以下关于QObject类定时器的叙述正确的是:a.当处理器正忙于其它事件的处理时,定时器仍可以立即触发b.当定时器触发时,应用程序会发送QtimerEventc.用startTimer ( )开始一个定时器,如果成功则返回0d.用startTimer ( )开始一个定时器,如果失败则返回-127.以下是QObject提供的字符串翻译函数的选项是:a.translateit ( ) , trUtf8 ( )b.translation ( )c.tr ( ) , trUtf_8 ( )d.tr ( ) , trUtf8 ( )28.以下关于元对象的叙述不正确的是:a.每个在类声明中含有Q_OBJECT宏的类都有一个对应的元对象b.每个在类声明中含有Q_OBJECT宏的类都有一个对应的QMetaObject类对象c.元对象是动态的d.一个类可能含有多个元对象与之对应29.窗口部件的父类包括:a.QWidgetb.QFramec.QScrollViewd.以上全是30.以下关于QWidget类、QFrame类和QScrollView类的关系叙述正确的是:a.三个类是兄弟关系b.三个类是继承关系:QWidget为祖父,QFrame为父,QScrollView为子c.三个类是继承关系:QFrame为祖父,QWidget为父,QScrollView为子d.三个类是继承关系:QFrame为祖父,QWidget与QScrollView互为兄弟31.以下关于Qt风格叙述正确的是:a.Qt的风格类的基类是QStyle类b.QStyle的多数成员函数即有声明也有实现c.其实现只能在QCommonStyle类中通过重载来完成d.其实现只能在QWindowStyle类中通过重载来完成32.关于布局功能的叙述,以下正确的是:a.在布局空间中布置子窗口部件b.设置子窗口部件间的空隙c.管理在布局空间中布置子窗口部件d.以上都对33.以下关于QLayout的描述不正确的是:a.是的布局系统抽象基类b.其中,属性int margin代表布局的外边框的宽度c.其中,属性int spacing代表布局内的窗口部件的大小d.其中,属性ResizeMode resizeMode代表布局的扩展方式34.布局窗口部件包括:a.QHBoxb.QVBoxc.QGridd.以上全有35.以下叙述不正确的是:a.QHBox允许子窗口部件按水平、垂直和网格排列b.QVBox允许子窗口部件按水平、垂直和网格排列c.QGrid允许子窗口部件按水平、垂直和网格排列d.以上全不对36.以下各项中,是QLayout子类的是:a.QGridLayoutb.QHBoxLayoutc.QVBoxLayoutd.b和c37.如果对默认放置位置不满意,则须采取相应的措施,以下哪项不是:a.创建没有父布局的布局对象b.调用addLayout ( )把这个布局插入到其他布局中c.没有办法d.a和b38.以下关于集合类描述不正确的是:a.它是装有多个条目的容器b.每个条目是某种数据结构c.集合类可对容器中的条目做插入操作d.集合类不能对容器中的条目做删除操作39.以下各项中属于基于值的集合类是:a.QCacheb.QMapc.QPtrListd.QDict40.以下各项中属于基于指针的集合类的是:a.QIntCacheb.QValueStakc.QValueVectord.QValueList41.以下各项中既不基于指针也不基于值的是:a.QIntDictb.QPtrListc.QPtrStackd.QMemArray42.所有基于指针的集合继承了如下哪个类?a.QGCacheb.QGVectorc.QPtrCollectiond.QGList43.当插入一个条目到一个集合时,如下不正确的是:a.仅拷贝指针而不拷贝条目本身的,称“浅拷贝”b.不允许只拷贝指针而不拷贝条目本身c.拷贝所有条目的数组到集合中是可能的d.选项C又称“深拷贝”44.以下各项中不是与Qt线程相关的类的是:a.QMutexb.QSemaphorec.QThreadd.以上都不是45.以下关于Qt线程叙述正确的是:a.Qt中提供了Thread线程类b.Qt中提供了QThread线程类c.通过重载Thread : : run ( ) 函数定义线程的执行内容d.通过重载QThread : : _run ( ) 函数定义线程的执行内容46.有如下关于线程的代码:class Your_Class : public QThread{public :virtual void run ( ) ;} ;void Your_Class : run ( ){for ( int i=0 ; i < 100 ; i++ ) ;}int main ( ){Your_Class a ;a . run ( ) ;return 0 ;}其中有几处错误:a. 1b. 2c. 3d. 447.以下关于线程编程时的注意事项中不正确的是:a.在持有Qt库互斥量时必须执行阻塞操作b.在调用除了Qt容器和工具类外的任何内容之前,锁定Qt应用程序互斥量c.只在GUI线程中使用QNetwork类d.不要在应用程序中把普通Qt库与支持线程的Qt库混用48.以下不属于拖放机制的是:a.拖动b.剪贴板c.放下d.以上都不是49.以下关于拖动的叙述错误的是:a.在拖动之后,QDragObject被立即删除b.拖放明显完成后,这个QDragObject要被保存c.QDragObject可能要与其他进程通信d.QDragObject对象最后由Qt删除50.在一些简单情况下,拖放的目标接收一个被拖动数据的拷贝,并且由源决定是否删除初始的拖动对象,这是QDropEvent中的什么操作?a.Copyb.Movec.Linkd.以上都不是51.Qt/Embedded的开发公司是:a.Microsoftb.Sunc.Oracled.Trolltech52.以下各项中关于焦点定位的习惯方式叙述错误的是:a.用户按Tab键b.用户按Enter键c.b选项不是d.用户使用鼠标滚轮53.以下关于Qt/Embedded叙述不正确的是:a.是C/S结构b.类库完全采用C语言c.采用framebuffer作为底层图形接口d.将外部输入设备抽象为keyboard和mouse输入事件54.以下关于字体的叙述正确的是:a.Qt/Embedded用QFontManager管理字体,与字体相关的类在服务器端运行b.Qt/Embedded用QFontManager管理字体,与字体相关的类在客户端运行c.Qt/Embedded用FontManager管理字体,与字体相关的类在服务器端运行d.Qt/Embedded用FontManager管理字体,与字体相关的类在客户端运行55.以下各项中与显示无关的类是:a.QScreenb.QLockc.QWSManagerd.QDiskFont56.以下不是Qt支持的图像格式是:a.JPGb.PNGc.BMPd.XPM57.以下叙述正确的是:a.Qt支持GIF格式图像,且可以存储它们b.Qt支持GIF格式图像,但不可以存储它们c.Qt不支持GIF格式图像,但可以存储它们d.Qt不支持GIF格式图像,且不可以存储它们58.用QPainter的转换函数对图像做转换后,若要恢复图像的原样,则以下正确的是:a.无法实现b.可以实现,用QPainter : : resetForm ( ) 只能恢复最近一次的转换c.可以实现,用QPainter : : resetForm ( ) 可以撤销所有的转换操作59.用QPixmap对象打开GIF动画,以下叙述正确的是:a.可以看到动画b.看不到任何画面c.只能看到动画的第一帧d.只能看到动画的最后一帧60.以下关于Qt/Embedded客户端与服务器的描述不正确的是:a.客户端可以有多个b.服务器可以有多个c.客户端只有一个d.服务器只有一个。
QT理论试题及答案
QT理论试题1.以下关于QT的描述正确的是:a.是一个不跨平台的C++图形用户界面b.由挪威TrollTech公司出品c.只支持Unix、Linuxd.QT API和开发工具对所支持的平台是不一致的2.以下关于QT的描述不正确的是:a.QT支持2D图形渲染b.QT支持3D图形渲染c.QT支持OpenGLd.QT不支持XML3.下关于不正确的是:a.是面向嵌入式系统的Qt版本b.是Qt的嵌入式窗口c.基于Windows平台的开发工具d.是完整的自包含C++ GUI的开发工具4.内部对字符集的处理采用以下哪个标准:a.UNICODEb.ASCIIc.GB2312d.ISO 8859—15.以下关于Qt描述不正确的是a.是基于面向对象的C++语言b.提供了signal和slot的对象通信机制c.有可查询和可设计属性d.没有字符国际化6.以下描述正确的是:a.标准的C++对象模型可有效的支持运行时参数b.标准的C++对象模型的静态特性十分灵活c.图形用户界面编程无需运行得高效d.图形用户界面编程无需运行得高灵活性7.以下不是QT增加的特性:a.有效的对象通信signal和slotb.可查询和可设计的对象c.事件及事件过滤器d.不使用指针8.以下描述正确的是:a.元对象系统可以对信号使用模板b.元对象系统可以对槽使用模板c.Qt可在多个平台的应用程序中完全应用模板d.Qt不能在多个平台的应用程序中完全应用模板9.以下关于moc叙述正确的是:a.moc即Mult Object Compilerb.可产生能被任何标准C++编译访问的附加C++代码c.moc必须手动调用d.类声明中有无Q_OBJECT无所谓10.以下关于信号和槽的描述正确的是:a.用于SOCKET网络通信b.用于UDP网络通信e.用于对象间通信c.用于串口通信11.以下关于信号/槽的叙述不正确的是:a.信号与槽通过connected函数任意相连b.信号/槽机制在QObject类中实现c.从QWidget类继承的所有类可以包含信号和槽d.当对象状态变化时信号被发送,对象不关心是否有其他对象接收到该信号12.以下类声明中有几处错误?class M : public Q o bject{ Q_OBJECTpublic :M ( );int value ( )const{return va ;}public slot s :void setValue ( int );signals :void valueChanged (int );private:int va ;};a. 5b. 4c. 3d. 213.设有如下声明void M : :setValue (int v ){if (v != va ){va = v ;emit valueChanged ( v );}}则对于如下语句M a , b ;connect (&a ,SIGNAL (valueChanged (int )),&b , SLOT (setValue ( int ) )) ;b。
QT理论试题及答案
QT理论试题1.以下关于QT的描述正确的是:a.是一个不跨平台的C++图形用户界面b.由挪威TrollTech公司出品c.只支持Unix、Linuxd.QT API和开发工具对所支持的平台是不一致的2.以下关于QT的描述不正确的是:a.QT支持2D图形渲染b.QT支持3D图形渲染c.QT支持OpenGLd.QT不支持XML3.下关于不正确的是:a.是面向嵌入式系统的Qt版本b.是Qt的嵌入式窗口c.基于Windows平台的开发工具d.是完整的自包含C++ GUI的开发工具4.内部对字符集的处理采用以下哪个标准:a.UNICODEb.ASCIIc.GB2312d.ISO 8859-15.以下关于Qt描述不正确的是a.是基于面向对象的C++语言b.提供了signal和slot的对象通信机制c.有可查询和可设计属性d.没有字符国际化6.以下描述正确的是:a.标准的C++对象模型可有效的支持运行时参数b.标准的C++对象模型的静态特性十分灵活c.图形用户界面编程无需运行得高效d.图形用户界面编程无需运行得高灵活性7.以下不是QT增加的特性:a.有效的对象通信signal和slotb.可查询和可设计的对象c.事件及事件过滤器d.不使用指针8.以下描述正确的是:a.元对象系统可以对信号使用模板b.元对象系统可以对槽使用模板c.Qt可在多个平台的应用程序中完全应用模板d.Qt不能在多个平台的应用程序中完全应用模板9.以下关于moc叙述正确的是:a.moc即Mult Object Compilerb.可产生能被任何标准C++编译访问的附加C++代码c.moc必须手动调用d.类声明中有无Q_OBJECT无所谓10.以下关于信号和槽的描述正确的是:a.用于SOCKET网络通信b.用于UDP网络通信e.用于对象间通信c.用于串口通信11.以下关于信号/槽的叙述不正确的是:a.信号与槽通过connected函数任意相连b.信号/槽机制在QObject类中实现c.从QWidget类继承的所有类可以包含信号和槽d.当对象状态变化时信号被发送,对象不关心是否有其他对象接收到该信号12.以下类声明中有几处错误?class M :public Q o bject{ Q_OBJECTpublic :M ( ) ;int value () const{return va ;}public slot s :void setValue ( int ) ;signals :void valueChanged (int );private:int va ;};a. 5b. 4c. 3d. 213.设有如下声明void M :: setValue ( int v ){if ( v != va ){va = v ;emit valueChanged ( v );}}则对于如下语句M a ,b ;connect (&a , SIGNAL (valueChanged (int ) ) ,&b , SLOT ( setValue ( int ) ));b.setValue ( 11 );a。
Qt期末考试试题
2016~2017学年第二学期Qt图形界面设计期末考试试题一、填空题(每小题2分,共40分)1、类的定义也是一个语句,所以最后的()不能丢掉。
2、说明类成员访问权限的关键字()、()、和()可以按任意顺序出现任意多次,但一个成员只能有()访问权限。
3、当声明一个类的对象时,编译程序需要为对象分配内存空间,进行必要额初始化,这个工作是由()来完成的。
当对象被撤销时,就要回收内存空间,并做一些善后工作,这个任务是由()来完成。
4、复制构造函数是一种特殊的构造函数,其作用是()。
5、对象之间复制后还共享某些资源,称为(),当两个对象之间进行复制时,若复制完成后,它们不会共享任何资源,一个对象的销毁不会影响另一个对象称为()。
6、静态成员函数主要用来访问类的静态成员,不能直接访问()。
7、一个类的友元函数虽然可以访问该类的所有成员,但并不是该类的()。
8、将全局函数声明为友元函数,可以在类体内加关键字()声明。
9、原则上,派生类不会继承基类的成员分别为()和()。
10 .常用的3种继承方式为()、()和()。
11.静态联编在程序被()时进行,动态联编是在程序()阶段进行。
二、图形界面设计题1、编写一个简单的图形界面程序,要求在主界面上显示“Hello Qt!”(10分)2、应用可视化设计方法在Qt中Designer创建一个计算矩形面积的对话框,如图所示:要求:点击关闭按钮可关闭其计算矩形面积的对话框。
(10分)3、利用信号和槽同步窗口部件原理,设计一个运行效果如下图所示的界面。
(15分)要求:1)微调框的值为自己的年龄2)滚动条的范围为0~503)窗体的标题为自己姓名的拼音形式。
三、给下列程序加注释,并写出其运行结果。
(共20分)class Name{ char *name;public:Name(char *nm){ name=nm;}void Show_name(){ cout<<name<<endl; }};class Telephone:public Name{ char *telephone;public:Telephone(char *nm,char *tel):Name(nm){telephone=tel;}void Show_telephone(){ cout<<telephone<<endl;} };int main(){ Name *p1,obj1("Wang"); 1.Telephone *p2,obj2(“Zhang”,“5681553”); 4.p1=&obj1;2.p1->Show_name(); 3.p1=&obj2; 5.p1->Show_name(); 6.((Telephone *)p1)->show_telephone(); 7.p2=&obj2; 8.p2->Show_name(); 10.p2->Show_telephone(); 9.}四、编写程序题(5分)计算矩形的面积,应用面向对象的程序设计方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
广东金融学院
2013-2014学年度第1学期期中考试课程: QT图形程序设计考试时间: 90分钟考试方式:机试开卷
命题:深圳软件园适用班级:软件开发人数:班级:学号:姓名:
题号一二三四总分阅卷人
得分
说明:下面程序用C++上机编写和调试,以结果为主。
一、选择程序(20分):
输入两个数,按从小到大的顺序输出这两数。
二、字符串处理(20分):
输入一个字符串,计算空格和数字的个数。
三、选择、循环和数组的综合应用(30分):
从键盘输入10个数到数组, 计算平均数。
四、类的建立与基本应用(30分):
1)建立一个矩形类Rect,具有计算面积的功能。
2) 输入矩形的长和宽,调用矩形类的函数求面积。
第 1 页共1 页。