Qt Creator 快速入门 选择题 霍亚飞版
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⽅⾯的东西,想找⼏本书看看。
⽹上介绍QT的书籍也有很多,不想浪费时间,所以想找⼏本精品的书籍来看。
花了半天的时间找了⼏本⾮常不错的,这⾥⾯整理好之后推荐给⼤家!下⾯介绍的⼏本书可以说每本都不错。
不过放在这⼀堆⼤家也不知道先看哪个,后看哪个?所以这块给⼤家列举⼀下学习的顺序:由浅⼊深。
⼤家也可以根据⾃⼰对于Qt⽅⾯的热衷程度与想要学习的深度来决定该看到哪本书籍。
1、《Qt Creator 快速⼊门》当前最新的是第三版,作者:霍亚飞,他可以说是 Qt ⽅⾯的达⼈。
这本书写得通俗易懂,⾮常适合 Qt 新⼿学习。
与之配套的还有⼀个叫《Qt 及 Qt Quick 开发实战精解》,也是霍亚飞写的,重点是⼩项⽬的实战部分。
在 Qt ⼊门的基础上可以学习。
下⾯列⼀下两本书的下载地址:Qt Creator快速⼊门第三版完整带书签PDF+源码:Qt 及 Qt Quick开发实战精解完整带书签清晰版PDF+源码:2、《精通Qt4编程》学习完《Qt Creator 快速⼊门》、《Qt 及 Qt Quick 开发实战精解》两本书之后,可以说已经进⼊了 Qt 开发的⼤门了。
可以来学学这本书,也很值得买的⼀本书。
讲解的不错。
当前最新版本是第⼆版。
下载地址:精通Qt4编程(第2版) 完整清晰PDF+源码:3、《C++ GUI Qt4 编程》这本书⽐较⾼级,不是新⼿学习的基础书籍,所以不适合新⼿看哦。
很多⼈都说这本书⽐较经典了。
当前最新版本是第⼆版!下载地址:C++ GUI Qt4 编程(第⼆版)完整带书签清晰PDF+源码:4、《Qt⾼级编程》⽼外写的 Qt ⽅⾯的⾼级⽽且⽐较有技术含量的书籍,也是公认的经典书籍。
下载地址:Qt⾼级编程完整带书签⾼清PDF+源码:5、《C++设计模式--基于Qt4开源跨平台开发框架》设计模式级别的了,从架构上谈Qt的开发,⾮常深⼊!下载地址:C++设计模式--基于Qt4开源跨平台开发框架完整清晰版中⽂PDF+英⽂CHM+源码:。
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 ) ) ) ;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 WRITE setPriority )④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入门之基础篇(一):Qt4及Qt5的下载与安装

Qt⼊门之基础篇(⼀):Qt4及Qt5的下载与安装转载请注明出处:.导语:Qt是⼀个跨平台的C++图形界⾯应⽤程序框架。
它提供给开发者建⽴图形⽤户界⾯所需的功能,⼴泛⽤于开发GUI程序,也可⽤于开发⾮GUI程序。
Qt很容易扩展,并且允许真正地组件编程。
基本上,Qt同X Window上的Motif,Openwin,GTK等图形界⾯库以及Windows平台上的MFC、OWL、VCL、ATL是同类型的东西。
本系列教程以Qt5.6为基础展开精讲。
参考书⽬:【1】霍亚飞.Qt Creator快速⼊门(第3版).2017年【2】蔡志明.精通Qt4编程.2008年【3】普拉达.C++ Primer Plus(第6版).张海龙译.2012年学习建议:我认为Qt是为喜爱C++的⼈准备的“PhotoShop”,如果你没有C++基础,那么你在看完《C++ Primer》这本书后再来看这⽚教程可能会让⾃⼰更舒服⼀些。
您C++学的不好怎么办?没关系,做事⾛⼼⽐什么都重要。
学习过程中越是⽤⼼,就越觉得⾃⼰C++基础不⾏,越想去复习C++,越复习C++,就越想学图形界⾯,死循环。
哈哈,不废了,步⼊正题吧!正⽂:安装Qt4⽅法安装准备:1.qt-opensource-windows-x86-mingw482-4.8.6-1.exe(qt库⽂件)2.qt-creator-opensource-windows-x86-4.2.0.exe(IDE)3.i686-4.8.2-release-posix-dwarf-rt_v3-rev3.7z(wingw编译器,⾮常重要,安装成功与否靠它了)4.qtcreator-gdb-7.4-MINGW32_NT-6.1-i686.tar.gz(gdb调试器)注意:这个Qt在XP和win7均能正常使⽤的!开始安装步骤⼀:先把所有的压缩包解压出来,然后把(⼀定要是对应的版本,见说明1)i686-4.8.2-release-posix-dwarf-rt_v3-rev3.7z解压出来的mingw32⽂件夹剪切到C盘中。
QtCreator快速入门期末试卷及答案霍亚飞版

QtCreator快速入门期末试卷及答案霍亚飞版Qt复习提纲Qt基础1、以下关于QT的描述正确的是____B_____A是一个不跨平台的C++图形用户界面B由挪威TrollTech公司出品C只支持Unix、LinuxD QT API和开发工具对所支持的平台是不一致的2、以下关于Qt描述不正确的是_____D__A是基于面向对象的C++语言B提供了signal和slot的对象通信机制C有可查询和可设计属性D没有字符国际化3、以下不是QT增加的特性_____D___A有效的对象通信signal和slotB可查询和可设计的对象C事件及事件过滤器D不使用指针4、以下关于信号和槽的描述正确的是__C_____A用于SOCKET网络通信B用于UDP网络通信C用于对象间通信D用于串口通信5、以下关于信号/槽的叙述不正确的是__B?______A信号与槽通过connected函数任意相连B信号/槽机制在QObject类中实现C从QWidget类继承的所有类可以包含信号和槽D当对象状态变化时信号被发送,对象不关心是否有其他对象接收到该信号6、关于布局功能的叙述,以下正确的是____D____A在布局空间中布置子窗口部件B设置子窗口部件间的空隙C管理在布局空间中布置子窗口部件D以上都对7、布局管理器包括____D____A QHBoxB QVBoxC QGridD 以上全有8、以下叙述正确的是__D_______A QHBox允许子窗口部件按水平、垂直和网格排列B QVBox允许子窗口部件按水平、垂直和网格排列C QGrid允许子窗口部件按水平、垂直和网格排列D 以上全不对9、创建一个窗体对象后,要想显示该窗体,需要调用对象的___show_______方法,要想隐藏该窗体需要调用对象的____hide______方法。
10、Qt标准输入对话框提供了4种数据类型的输入,它们是:____字符串______、______i nt 类型的数据_____、____double类型的数据_______、__下拉列表框的条目______。
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理论试卷试题及答案

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. 1211 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 WRITE setPriority )④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.服务器只有一个。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.以下关于QT的描述正确的是:
a.是一个不跨平台的C++图形用户界面
b.由挪威TrollTech公司出品
c.只支持Unix、Linux
d.QT API和开发工具对所支持的平台是不一致的2.以下关于QT的描述不正确的是:
a.QT支持2D图形渲染
b.QT支持3D图形渲染
c.QT支持OpenGL
d.QT不支持XML
3.下关于不正确的是:
a.是面向嵌入式系统的Qt版本
b.是Qt的嵌入式窗口
c.基于Windows平台的开发工具
d.是完整的自包含C++ GUI的开发工具
4.内部对字符集的处理采用以下哪个标准:
a.UNICODE
b.ASCII
c.GB2312
d.ISO 8859-1
5.以下关于Qt描述不正确的是
a.是基于面向对象的C++语言
b.提供了signal和slot的对象通信机制
c.有可查询和可设计属性
d.没有字符国际化
6.以下描述正确的是:
a.标准的C++对象模型可有效的支持运行时参数
b.标准的C++对象模型的静态特性十分灵活
c.图形用户界面编程无需运行得高效
d.图形用户界面编程无需运行得高灵活性
7.以下不是QT增加的特性:
a.有效的对象通信signal和slot
b.可查询和可设计的对象
c.事件及事件过滤器
d.不使用指针
8.以下描述正确的是:
a.元对象系统可以对信号使用模板
b.元对象系统可以对槽使用模板
c.Qt可在多个平台的应用程序中完全应用模板
d.Qt不能在多个平台的应用程序中完全应用模板9.以下关于moc叙述正确的是:
a.moc即Mult Object Compiler
b.可产生能被任何标准C++编译访问的附加C++代码
c.moc必须手动调用
d.类声明中有无Q_OBJECT无所谓
10.以下关于信号和槽的描述正确的是:
a.用于SOCKET网络通信
b.用于UDP网络通信
c.用于对象间通信
d.用于串口通信
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. 5
b. 4
c. 3
d. 2
13.设有如下声明
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. 12 12
c. 11 12
d. 12 11 14.以下关于槽的描述正确的是:
a.槽具有public和protected 2个类
b.protected slots 表示只有该类的子类的信号才能连接
c.槽是普通成员函数
d.不能有private slots
15.以下关于元对象系统不正确的是
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_OBJECT
d.QObject的子类中未实现属性也可使用Q_OBJECT
18.以下关于元对象编译器的叙述不正确的是:
a.元对象编译器不展开#define ,但可展开#include
b.元对象编译器不展开#include
c.忽略遇到的所有预处理程序
d.无法处理所有C++语法
19.有如下语句
class YourClass : public Qobject
{
Q_OBJECT
public slots :
void apply ( void ( *apply ) ( List * , void * ) , char * ) ;
}
以下正确的是
a.完全正确
b.可以没有Q_OBJECT
c.slots关键字有误
d.函数指针不能作为信号和槽的参数
20.如下叙述不正确的是:
a.不能把继承的成员函数升级为共有状态
b.宏不能用在信号和槽的参数中
c.嵌套类不能放在信号部分
d.嵌套类可以放在槽部分
21.有如下声明:
class Abc : public Qobject
{
①Q_OBJECT
2public :
3 Q_PROPERTY(Priority priority READ priority WRITE
setPriority )
4Q_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_trees
c.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.当定时器触发时,应用程序会发送QtimerEvent
c.用startTimer ( )开始一个定时器,如果成功则返回0
d.用startTimer ( )开始一个定时器,如果失败则返回-1
27.以下是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.QWidget
b.QFrame
c.QScrollView
d.以上全是
30.以下关于QWidget类、QFrame类和QScrollView类的关系叙述正确的是:
a.三个类是兄弟关系
b.三个类是继承关系:QWidget为祖父,QFrame为父,QScrollView为子
c.三个类是继承关系:QFrame为祖父,QWidget为父,QScrollView为子
d.三个类是继承关系:QFrame为祖父,QWidget与QScrollView互为兄弟答案BDCAD ADCDC ACCCA DBABD ADDDA BDDDB。