选择
-
Qt中,常用于项显示数据表格控件是______
A:QTableWidget
B:QTableView
C:QTableModel
D:QTableWidgetItem
答案:A
解析:“项显示” 指在用户界面中以列表或表格的形式显示数据集合的过程。在Qt中,常用于项显示的数据表格控件是QTableWidget
。这是一个直接包含数据的表格控件,对于简单的表格显示,特别是当数据量不大时,应该优先选用QTableWidget
;QTableView 是一个视图控件,通常需要与数据模型配合使用,不能直接显示数据;QTableModel 根本不存在;QTableWidgetItem 是QTableWidget
的元素,存储其每一项的值
-
在MDI应用程序设计中,不可以用于创建多文档窗口类的是______
A:QMdiSubWidget和QMdiArea
B:QMdiArea和QWorkSpace
C:QWorkSpace和QStackWidget
D:QMdiArea和 QSPlitter
答案:C
解析:在MDI应用程序设计中,主要使用QMdiSubWindow
(创建子窗口) 和QMdiArea
(创建主多窗口)。不存在QMdiSubWidget
以及QWorkSpace
;QSplliter
用于分割窗口,在多文档窗口中没有重要作用
-
_____类为用户提供一个统一的命令接口,无论是从菜单还是工具栏触发,或者快捷方式触发都调用同样的操作接口
A:QAction
B:QToolBar
C:QMenuBar
D:QStatusBar
答案:A
解析:根据题目的信息可知,主要的词是触发,而在选项中,与四个选项都关联的就是A.QAction
,该类为用户提供一个统一的命令接口,无论用户是通过菜单、工具栏、还是快捷方式触发,都可以通过QAction
调用相同的操作接口。而剩下的选项中,其上放置的组件都需与QAction关联才会发挥其作用
-
创建的Qt中工程中,资源文件的扩展名是______
A:.xml
B:.cpp
C:.qrs
D:.pro
答案:C
解析:在Qt中,资源文件的扩展名是 .qrc
-
Qt中QSplitter的功能是______
A:显示窗口控件
B:管理窗口部件
C:创建子窗口
D:分裂窗口
答案:D
解析:QSplitter
允许用户在应用程序中创建可调整大小的分隔窗格,以便动态地调整窗口的大小。通过在QSplitter
中添加子窗口控件,用户可以通过拖动分隔条来调整这些子窗口之间的大小。至于A选项,可以使用QFrame
、QWidget
实现;B主要使用QLayout
进行实现,但硬要说的话,QSplitter
也可以实现该功能,但该题中D项更合适;C使用QMainWindow
、QMdiArea
实现
-
Qt中的Model/View结构采用______架构实现数据的处理
A:MVC
B:MVD
C:DMV
D:FMV
答案:A
解析:在 Qt 中的 Model/View 结构采用 MVC(Model-View-Controller) 架构实现数据的处理。MVC 是一种软件设计模式,用于将应用程序的数据、用户界面和控制逻辑分离,以提高代码的可维护性和可扩展性。至于其他的选项MVD(Model-View-Delegate)
是MVC的变形,引入了委托(Delegate),允许更灵活地定制视图的呈现方式;DMV(Data-Model-View)
指数据(Data)是模型(Model)和视图(View)之间的中介,强调数据与界面之间的分离,模型负责管理数据,视图负责呈现数据,并通过数据模型与视图进行交互;FMV可能是一个虚构的,DMV是没有被广泛认知的软件开发模式
-
在窗口部件管理器中,使用部件的______方法给窗口添加部件
A:addWidget()
B:addLayout()
C:setLayout()
D:setView()
答案:A
解析:在窗口部件管理器中,使用部件的addWidget()
方法给窗口添加部件。这个方法用于将一个部件添加到布局或容器中
-
Qt中,在QMainWindow的添加工具条,用______方法
A:addMenu()
B:addToolBar()
C:addAction()
D:addSeparator()
答案:B
解析:向QMainWindow
添加工具条使用的是addToolBar()
方法
-
信号的声明是在头文件中进行的,Qt的______关键字指出进入了信号声明区
A:signals
B:public
C:signal
D:protected
答案:A
解析:Qt 中头文件关键字有solts
、signals
;solts
用于定义槽函数,而signals
用于定义信号,两种关键字均可以被作用域(public
、proctected
、private
)所修饰。在Qt4之前被称为关键字,Qt5之后slots
和signals
已经不再是关键字,而是被视为宏
-
Qt中,QObject是整个Qt对象模型的核心,其中______QObject不属于的职责
A:内存管理
B:内省
C:事件处理机制
D:信号和槽机制
答案:D
解析:信号和槽机制不是QObject
的直接职责,是通过元对象系统(Meta-Object System)来实现的;QObject
是 Qt 对象模型的基类,它具有内存管理(当一个QObject
对象被设为另一个对象的子对象时,父对象会负责管理子对象的内存)、内省(指一个对象可以自我检查和获取自身的信息的能力。通过一些函数如metaObject()
获取对象的元对象信息)、事件处理机制:通过重写event
函数,可以处理和过滤事件
-
下列是为QComboBox控件中添加多项______方法
A:addItem()
B:addLayout()
C:addItems()
D:insertItem()
答案:C
解析:QComboBox
在添加时主要有三种方法:1.insertItem
:这种方法可以向指定位置插入项;2.addItem
:向QComboBox
尾部添加项;3.addItems
:用于在尾部一次性添加多个项,底层其实就是一个for循环调用addItem
-
下列控件中不属于Button类的是______
A:QRadioButton
B:QToolButton
C:QCheckBox
D:QStatusBar
答案:D
解析:在 Qt 中,QStatusBar
不属于 Button 类,而是用于显示应用程序状态信息的控件。另外三个选项都属于 Button 类:A单选按钮、B工具按钮、C复选框,均基于QAbstractButton
-
在Qt的绘图事件中,用______对象实例进行绘图操作
A:QPaintEvent
B:QPainter
C:QDraw
D:QWidget
答案:B
解析:绘图事件中,用于进行绘图操作的对象实例是 QPainter。该类提供了用于绘制图形和图像的方法,可以在paintEvent
事件处理函数中使用它来执行绘图操作
-
Qt提供了三大基类实现图形界面窗口设计,其中不包括______类
A:QDialog
B:QMainWindow
C:QWidget
D:QLabel
答案:D
解析:三大基类分别是:QWidget
创建基本窗口组件的基类;QMainWindow
用于创建主窗口的基类,通常包含菜单栏、工具栏、状态栏等;QDialog
用于创建对话框的基类,对话框通常是临时性的窗口,用于与用户进行交互
-
在QPushButton操作中,关联函数中选择______信号函数
A:activated()
B:changed()
C:triggered()
D:clicked()
答案:D
解析:QPushButton
通常使用 clicked() 信号关联到槽函数,在按钮被点击时发射
-
QSPlitter *splitter=new QSPlitter(Qt::Horizontal,0);功能是______
A:把主窗口分成左右两个子窗口
B:把主窗口分成上下两个子窗口
C:把子窗口分成左右两个子窗口
D:把子窗口分成上下两个子窗口
答案:A
解析:题目创建的QSplitter
对象将整个窗口水平分割,即分成左右两个子窗口;反之,如果new QSPlitter(Qt::Vertical,0)
,就会将整个窗口垂直分割,即分成上下两个子窗口
-
下列类中属于关联容器类的是______
A:QString
B:QList
C:QMap
D:QVect
答案:C: QMap
解析:关联容器指在存储和组织数据时基于键-值对(key-value pairs)的数据结构,只有Map符合,QMap
是一个键值对的关联容器,用于存储键值对数据,其中每个键都是唯一的,可以通过键快速查找对应的值
-
在窗口部件管理器中,使用部件的______方法给窗口添加部件
A:addWidget()
B:addLayout()
C:setLayout()
D:setView()
答案:A
解析:在窗口部件管理器中,使用部件的 addWidget() 方法给窗口添加部件。这个方法用于将一个部件添加到布局中或者将一个布局添加到另一个布局中
-
嵌入式应用程序经过交叉编译器后,PC机通过______接口与开发板连接,查看开发板运行状态上
A:串口
B:网口
C:并口
D:wifi
答案:A
解析:嵌入式应用程序经过交叉编译后,通常通过串口接口与开发板连接,以便在PC机上查看开发板的运行状态。串口连接通常用于调试、日志输出和与嵌入式系统进行通信
-
Qt中声明信号用到关键字是______
A:signal
B:signals
C:slot
D:slots
答案:B
解析:Signals声明时使用signals
关键字在头文件声明信号,例如:signals: void mySignal()
,使用emit
关键字或者不使用关键字来发射信号,例如:emit mySignal();
或者mySignal();
而Slots使用slots
关键字声明槽,例如:public slots: void mySlot();
-
编译能运行在ARM上的可执行程序,要用到______交叉编译器
A:gcc
B:gdb
C:arm_linux_gcc
D:vi
答案:C
解析:在编译能够运行在 ARM 架构上的可执行程序时,需要使用专门针对 ARM 架构的交叉编译器。一般来说,这个交叉编译器的名称会包含目标平台(如 ARM)、操作系统(如 Linux)等信息。arm_linux_gcc 提示使用的是 ARM 架构上运行的 Linux 系统的交叉编译器
-
Qt的核心机制是______
A:元对象
B:信号与槽
C:类库
D:图形用户界面
答案:B
解析:元对象(Meta Object)是 Qt 中支持信号与槽机制的基础;类库是用于构建应用程序的工具和类的集合;Qt 提供了丰富的 GUI 功能,但信号与槽是其更基础、更通用的机制
-
Qt中______类提供了将二进制文件串行化,完成其读写操作
A:QDir
B:QFileInfo
C:QTextStream
D:QdataStream
答案:D
解析:QDataStream
类是 Qt 中用于将二进制文件串行化(序列化)和反串行化(反序列化)的类,提供了一种在二进制文件中进行数据读写的方式,用于方便地将数据保存到文件或从文件中读取数据。QDir
是用于处理目录和路径;QFileInfo
提供关于文件的信息;QTextStream
用于文本文件的读写
-
在主窗口中,创建菜单栏用menuBar()的______函数实现
A:addTooBar()
B:addmenu()
C:menuBar()
D:addAction()
答案:B
解析:在主窗口中,创建菜单栏可以使用 menuBar() 函数,但正确的操作是在菜单栏上添加菜单,而不是直接使用 menuBar()。要向菜单栏添加菜单,通常使用 addMenu() 函数
-
Qt中,在QLCDNumber数字显示控件中,使用______方法显示数字和字符串信息
A:text()
B:display()
C:setText()
D:setValue()
答案:B
解析:在 Qt 中,使用 QLCDNumber 数字显示控件,可以使用 display() 方法来显示数字和字符串信息
-
PC机下,在Linux系统下通过命令方式编译Qt应用程序,qmake命令产生______文件
A:.pro
B:Makefile
C:configure
D:.bin
答案:B
解析:在 PC 机下,在 Linux 系统中通过命令方式编译 Qt 应用程序,qmake 命令会产生 Makefile 文件。Makefile 是一个用于构建和编译项目的 Make 工具的配置文件。通过运行 make 命令,可以根据 Makefile 文件中的规则和指令来编译和构建 Qt 应用程序
-
QDialog对话框的打开模式中,处于模态工作模式的是调用对话框的______方法
A:exec()
B:show
C:run()
D:kill()
答案:A
解析:在 QDialog 对话框的打开模式中,处于模态工作模式时,可以调用 exec() 方法。使用 exec() 方法会使对话框以模态方式显示,即它会阻塞调用代码,直到用户关闭了对话框。这样可以确保用户在对话框上完成操作之前不能与应用程序的其他部分进行交互
-
QDialog对话框的工作方式有______
A:模式和非模式对话框
B:基本对话框
C:隐含对话框
D:顶级对话框
答案:A
解析:同上
-
槽函数的返回类型都是______
A:int
B:void
C:bool
D:QObject
答案:B
解析:槽函数的返回类型通常是 void。槽函数是用于响应信号的函数,其目的是执行一些操作而不需要返回数值。在 Qt 中,槽函数可以有返回值,但一般情况下,槽函数返回 void 是最常见的情况
-
在Qt中,声明信号和槽函数时,它们返回类型均为______
A:int
B:bool
C:QString
D:void
答案:D
解析:在 Qt 中,无论是声明信号还是槽函数,它们的返回类型都是 void。这是因为信号主要用于通知发生的事件,而槽函数用于响应这些事件,它们通常不需要返回任何值
-
在Qt的布局管理器中,______不属于常用布局管理器
A:QHBoxLayout
B:QVBoxLayout
C:QGridLayout
D:QStackedWidget
答案:D
解析:ABC三个都是布局管理器(Layout),D是栈部件
-
在主窗口中,调用______函数设置窗口的标题
A:WindowTitle()
B:WindowIcon()
C:setWindowTitle()
D:setWindowIcon()
答案:C
解析:英语题
-
Qt的事件过滤器的功能是______
A:过滤无用信息
B:过滤干扰信号
C:一个对象监听另一个对象
D:过滤其他事件
答案:C
解析:事件过滤器允许一个对象(通常是一个 QObject 的子类)监听另一个对象的事件。通过事件过滤器,一个对象可以截获并处理另一个对象的事件,而无需直接修改被监听对象的代码,从而实现在不修改源代码的情况下对对象的事件进行自定义处理
-
在Qt的Model/View结构中,下面______属于模型
A:QFile
B:QFileSystemModel
C:QStringList
D:QTreeWidgetItem
答案:B
解析:在 Qt 的 Model/View 结构中,模型负责管理数据,而视图负责显示和用户交互。QFileSystemModel 是一个用于在文件系统中浏览和检索信息的模型类
填空
- Qt中,【1】类是所有事件的基类
答案:
QEvent
解析:QEvent
类是所有事件类型的基类,它提供了一种通用的事件表示方式。其他特定类型的事件都是从QEvent
派生出来的,以表示不同的事件类型
- 利用Qt的QPainter工具绘图时,在【1】函数中实现绘图
答案:
paintEvent
解析:绘图通常是在继承自QWidget
的自定义部件的paintEvent
函数中实现的
- 在Qt的数据项显示中,主要包括ListWidget、QTableWidget和【1】
答案:
QTreeWidget
解析:Qt 主要有三个数据项显示方式包括QListWidget
(显示一列数据项的列表) 和QTableWidget
(显示二维表格数据),还有QTreeWidget
(显示树形结构的数据)
- 信号和槽的关联通过调用QObject对象的【1】函数
答案:
connect()
- 在组合框QCombBox中,用【1】和【2】方法在组合框中添加内容
答案:
addItem
和addItems
解析:如果要在指定位置插入单个项,可以使用insertItem
方法,但在这个问题中,问题描述的是在组合框中添加内容,而不是在指定位置插入单个项。因此,addItem
和addItems
是更常用的方法,因为它们更适合向组合框中添加一组项,而不仅仅是在特定位置插入单个项
- 在Qt的显示系统目录时,采用【1】类
答案:
QDir
- Qt中常用于创建顶级窗口部件是【1】和【2】
答案:
QDialog
QMainWindow
- 根据Qt中提供不同的容器类型,并通过两类迭代器遍历存储在容器中的项,这两类迭代器是【1】迭代器和【2】迭代器
答案:Java风格 STL风格
- QDialog对话框的工作方式有【1】和【2】
答案:1). 模式 2). 非模式
解析:QDialog 对话框在工作方式上有两种模式:模态(模式)和非模态。模式指用户必须在对话框上完成操作后,才能返回到主窗口或应用程序的其他部分,通过exec
方法调用;非模式指用户可以与对话框交互的同时继续与应用程序的其他部分进行交互,通过show
方法调用
- 在Qt鼠标事件中,通过【1】方法获取鼠标在当前窗口的坐标位置
答案:
event->pos()
- Qt中,在控件QDateTimeEdit中要获取当前日期时间,通过【1】方法
答案:
currentDateTime()
- Qt常用的布局管理有QGridLayout、【1】和【2】
答案:1)
QHBoxLayout
2)QVBoxLayout
解析:QHBoxLayout 和 QVBoxLayout 分别代表水平布局和垂直布局,它们是 Qt 中常用的布局管理器。这两种布局管理器可以用来将部件按照水平或垂直方向进行排列
- 双缓冲技术解决了图形图像处理中【1】现象
答案:闪烁
- 在Qt中QStringList操作中,使用append()操作、+=和【1】操作符向列表中添加信息
答案:<<
- Q_Object宏定义的作用是在于启用【1】的一些特性
答案:元对象
简答
- Qt中定时器与时间事件都起到什么作用,它们各自有什么特点
解析:定时器与时间事件都起到定时作用,定时器类QTimer提供当定时器触发的时候发射一个信号的定时器,他提供只触发一次的超时事件.TimeEvent()事件是通过QObject::startTimer()触发,应用程序会发送一个QTimerEvent.在事件循环中,处理器按照事件队列的顺序来处理定时器事件
- 常用的创建主窗口的方法有哪些?各自的特点是什么?
解析:常用的创建主窗口的方法主要有:①纯代码,即继承QMainWindow类,然后通过代码创建应用程序主窗口的菜单栏、工具栏和状态栏及窗口中心部件,一般在嵌入式设备的图形界面开发中使用,代码冗余少,使用资源少,设备运行快等。②利用UI设计器,通常在PC机上开发大型应用程序时使用,界面设计直观,控件布局方便
- 简述Qt提供哪些现有的view类,将model中的数据显示,并举例说明
解析:Qt提供了view的ListView(
listView->setModel(model);listView->show();
)、TableView(tableview ->setModel(model); tableview ->show();
)和TreeView(treeview->setModel(model); treeview ->show();
)三种类型,它们分别以列表形式、表格形式和树形方式显示数据
- 简述Qt采用模型-视图-控制器的框架中,各自的功能及该框架的优点
答案:模型代表数据集,通过模型管理底层的数据,为上传视图提供统一接口;视图代表面向用的数据展示方式;控制器则是模型和视图间的操作协议,Qt通过委托的方式实现控制机制;实现数据和显示的分离,模型只需关注数据的组织和管理,不需要关心显示的变化,视图只需关心展示方式,不需要关心数据的变化,这对软件部件的可重用提供了良好的解决方案
- 简述多文档窗口中QMdiArea与QMdiSubWindow类区别与联系
解析:Qt中,QMdiArea类的主要功能就是为MDI提供一个窗口管理器,提供了一个子窗口区域,在MDI应用程序中QMdiArea类对象通过被设为QMainWindow的中心部件,添加一个MDI子窗口可以通过addSubWindow()函数,把其他QWidget组件添加为子窗口. QMdiSubWindow则是子窗口类,均继承自QWidget,用于创建子窗口. QMdiArea类用于容纳多个子窗口QMdiSubWindow.
- 简述主窗口包含哪些,创建主窗口应用程序的步骤。
解析:主窗口包括菜单栏、工具栏、状态栏、锚接部件和中心工作区五大部分.首先创建QActon,创建主菜单和子菜单,创建工具栏,创建状态栏,添加中心工作区域,然后再通过QAction中信号和槽实现菜单和工具栏的关联,并完成槽函数的功能.
- 简述Qt应用程序运行ARM平台上编译过程?
解析:准备ARM平台:需要一个ARM平台,这可以是ARM处理器或ARM开发板。确保开发环境已经配置好,并且安装了适用于ARM平台的编译器和Qt版本。创建Qt项目:使用Qt Creator或其他Qt集成开发环境(IDE)创建一个新的Qt项目。选择适当的项目类型和配置选项。配置项目文件:在项目文件(通常是.pro文件)中,确保您的项目配置为支持ARM平台。编写代码。编译代码:在Qt Creator中,在命令行中,可使用qmake命令来生成Makefile。链接库:根据项目需求,可能需要链接到特定的ARM平台库。确保在项目文件中正确配置这些库的路径和名称。调试和测试:在ARM平台上运行和调试您的Qt应用程序。可使用Qt Creator的调试功能或使用其他调试工具进行调试。
- 简述Qt中QTimeEvent是如何实现定时的
解析:
- 创建一个QTimer对象,并将其连接到槽函数或lambda表达式。例如,可以使用connect函数将timeout信号与相应的槽函数连接起来。
- 设置定时器的时间间隔(以毫秒为单位),即在多长时间后触发一次定时器事件。可以使用setInterval函数来设置时间间隔。
- 启动定时器,使其开始计时并等待触发。
- 当定时器到达设定的时间间隔时,会发出timeout信号。
- 将timeout信号与具体的处理逻辑关联,可以在槽函数中执行所需的操作。
- 重写QTimerEvent事件处理函数(timerEvent)并根据需要进行处理。当定时器事件发生时,QEventLoop会将该事件发送给适当的控件。
- 在重写的timerEvent函数中,判断事件类型是否为QTimerEvent,如果是,则执行所需的操作。
- 简述Qt中QPaintEvent是如何实现绘图过程的
解析:
- 重写QWidget或其子类的paintEvent函数。
- 当需要刷新并进行绘图时,系统会自动发送一个paintEvent事件。
- 在重写的paintEvent函数中,创建QPainter对象,该对象用于执行绘制操作。
- 使用QPainter对象进行具体的绘图任务,如绘制线条、填充形状、绘制文本等。
- 将绘制的图形渲染到指定的窗口或小部件上。
- paintEvent处理完成后,系统会自动将结果更新到屏幕上,以显示最新的绘图内容。
程序填空
-
利用Qt的QMessageBox类提供的问题消息对话框,实现如图所示,请补全空白
#include <QApplication> #include <QMessageBox> int main(int argc, char *argv[]) { QApplication a(argc, argv); /***********SPACE***********/ QMessageBox:: 【?】(NULL, /***********SPACE***********/ 【?】, /***********SPACE***********/ 【?】, /***********SPACE***********/ 【?】, /***********SPACE***********/ 【?】); return a.exec(); }
答案
- question
- “Question”
- “test Question Dialog!”
- QMessageBox::Ok|QMessageBox::Cancel
- QMessageBox::Ok
-
在QComboBox中添加如图所示信息,数据从0开始,最大值20,步长为3,并显示,请补全空白
#include <QApplication> #include <QComboBox> int main(int argc, char *argv[]) { QApplication a(argc, argv); QComboBox comBox; /***********SPACE***********/ for(int i=0;i<【?】; /***********SPACE***********/ 【?】) /***********SPACE***********/ comBox.【?】( /***********SPACE***********/ 【?】); /***********SPACE***********/ comBox.【?】; return a.exec(); }
答案:
- 20
- i = i + 3
- addItem
- QString::number(i)
- show()
-
要实现打开字体对话框,设初始字体为宋体,标题名称如图所示,请补全空白
#include <QApplication> #include <QFontDialog> int main(int argc, char *argv[]) { QApplication a(argc, argv); /***********SPACE***********/ 【?】 ok; QFont font=QFontDialog:: /***********SPACE***********/ 【?】( /***********SPACE***********/ 【?】, /***********SPACE***********/ QFont(【?】),NULL, /***********SPACE***********/ 【?】); return a.exec(); }
答案:
- bool
- getFont
- &ok
- “宋体”
- “Font Dialog”
-
利用QDateTime类实现在QLabel上居中显示当前的日期时间,格式如图所示,请补全空白
#include <QApplication> #include <QDateTime> #include <QLabel> int main(int argc, char *argv[]) { QApplication a(argc, argv); QLabel label; /***********SPACE***********/ label.setAlignment(【?】) ; /***********SPACE***********/ QDateTime dateTime=QDateTime::【?】; /***********SPACE***********/ label.【?】( /***********SPACE***********/ dateTime.【?】) /***********SPACE***********/ label.【?】; return a.exec(); }
答案:
- Qt::AlignCenter
- currentDateTime()
- setText
- toString(“yyyy/MM/dd hh:mm:ss ddd”)
- show()
-
在QComboBox中添加如图所示信息,以字符串列表的方式添加,信息为"星期一星期二星期三星期四星期五星期六星期日",并显示,请补全空白
#include <QApplication> #include <QComboBox> int main(int argc, char *argv[]) { QApplication a(argc, argv); QComboBox comBox; /***********SPACE***********/ 【?】 list; /***********SPACE***********/ list<<【?】; /***********SPACE***********/ comBox.【?】( /***********SPACE***********/ 【?】); /***********SPACE***********/ comBox.【?】; return a.exec(); }
答案
- QStringList
- “星期一” << “星期二” << “星期三” << “星期四” << “星期五” << “星期六” << “星期日”
- addItems
- list
- show()
-
利用Qt的QMessageBox类提供的批评消息对话框,实现如图所示,请补全空白
#include <QApplication> #include<QMessageBox> int main(int argc, char* argv[]) { QApplication a(argc, argv); /***********SPACE***********/ QMessageBox:: 【?】(NULL, /***********SPACE***********/ 【?】, /***********SPACE***********/ 【?】, /***********SPACE***********/ 【?】, /***********SPACE***********/ 【?】); return a.exec(); }
答案:
- critical
- “Critical”
- “test Critical Dialog!”
- QMessageBox::Ok|QMessageBox::Cancel
- QMessageBox::Ok
-
在QComboBox中添加如图所示信息,以字符串列表的方式添加,信息为"张红 王蒙 李敏 吴昊 赵彬 徐航",并显示,请补全空白
#include <QApplication> #include <QComboBox> int main(int argc, char* argv[]) { QApplication a(argc, argv); QComboBox comBox; /***********SPACE***********/ 【?】 list; /***********SPACE***********/ list<<【?】; /***********SPACE***********/ comBox.【?】( /***********SPACE***********/ 【?】); /***********SPACE***********/ comBox.【?】; return a.exec(); }
答案
- QStringList
- “张红”<<“王蒙”<<“李敏”<<“吴昊”<<“赵彬” <<“徐航”
- addItems
- list
- show
-
要实现打开颜色对话框,设初始颜色为黑色,标题名称如图所示,请补全空白
#include <QApplication> #include <QColorDialog> int main(int argc, char* argv[]) { QApplication a(argc, argv); /***********SPACE***********/ QColor color=QColorDialog:: /***********SPACE***********/ getColor( /***********SPACE***********/ Qt::black, /***********SPACE***********/ NULL, /***********SPACE***********/ "Color Dialog"); return a.exec(); }
答案
- QColor
- getColor
- Qt::black
- NULL
- “Color Dialog”
程序设计
-
编写函数Splitter(),其功能是:利用Qt的QSplitter进行窗口切分,并在其子窗口中添加QTextEdit组件,并显示信息,实现如图所示
#include <QApplication> #include <QSplitter> #include <QTextEdit> void splitter() { /**********Program**********/ /********** End **********/ } int main(int argc, char *argv[]) { QApplication a(argc, argv); splitter(); return a.exec(); }
答案
QTextEdit *textedit1 = new QTextEdit("textEdit1"); QTextEdit *textedit2 = new QTextEdit("textEdit2"); QTextEdit *textedit3 = new QTextEdit("textEdit3"); QSplitter *splitter1 = new QSplitter(Qt::Horizontal); splitter1->addWidget(textedit2); splitter1->addWidget(textedit3); QSplitter *splitter2 = new QSplitter(Qt::Vertical); splitter2->addWidget(splitter1); splitter2->addWidget(textedit1); splitter2->show();
-
利用Qt的QMainWindow主窗体中文件菜单中的打开子菜单,调出打开文件对话框,并将当前工程目录下的main.cpp文件内容显示在主窗口的中心区域QPlainTextEdit类对象,在打开槽函数中实现其功能,实现效果如图所示
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QFileDialog> #include <QTextStream> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); setCentralWidget(ui->plainTextEdit); } void MainWindow::on_actionOpen_triggered() { /**********Program**********/ /********** End **********/ }
答案
// 打开文件对话框 QString filePath = QFileDialog::getOpenFileName(this, tr("Open file Dialog"), QString(), tr("*.cpp;*.txt")); if (!filePath.isEmpty()) { // 读取文件内容 QFile file(filePath); if (file.open(QIODevice::ReadOnly | QIODevice::Text)) { QTextStream in(&file); QString fileContent = in.readAll(); file.close(); // 将文件内容显示在文本编辑器中 textEdit->setPlainText(fileContent); file.close(); } }
-
利用Qt的QMainWindow主窗体中文件菜单中的保存子菜单,调出保存文件对话框,并将当前主窗口的中心区域QPlainTextEdit类对象中显示的内容保存为test.txt文件,放在当前工程目录下,在保存槽函数中实现其功能,实现效果如图所示
#include "mainwindow.h" #include "ui_mainwindow.h" #include<QFileDialog> #include<QTextStream> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); setCentralWidget(ui->plainTextEdit); } void MainWindow::on_actionSave_triggered() { /**********Program**********/ /********** End **********/ }
答案
QString filePath = QFileDialog::getSaveFileName(this, "Save File", "", "Text Files (*.txt);;All Files (*)"); if (!filePath.isEmpty()) { QFile file(filePath); if (file.open(QIODevice::WriteOnly | QIODevice::Text)) { QTextStream out(&file); out << ui->plainTextEdit->toPlainText(); file.close(); } }
-
利用Qt的QTableWidget类实现如图所示的表格,第一列和第二列为文本信息,第三列为QComboBox组件,在QComboBox中添加男和女,按要求在构造函数中完成如图所示表格数据信息的添加
#include <conio.h> #include <QTableWidget> #include <QComboBox> #include <QTableWidgetItem> Dialog::Dialog(QWidget *parent) : QDialog(parent) { setWindowTitle("QTableWidget"); QTableWidget *table = new QTableWidget(6, 3, this); table->resize(400, 300); QStringList list; list << "Num" << "Name" << "Sex"; table->setHorizontalHeaderLabels(list); for (int i = 0; i < table->rowCount(); i++) { /**********Program**********/ /********** End **********/ } }
答案:
// 添加文本信息 QTableWidgetItem *numItem = new QTableWidgetItem(QString::number(i + 1)); table->setItem(i, 0, numItem); QTableWidgetItem *nameItem = new QTableWidgetItem("Name" + QString::number(i + 1)); table->setItem(i, 1, nameItem); // 添加QComboBox组件 QComboBox *comboBox = new QComboBox(this); comboBox->addItem("男"); comboBox->addItem("女"); // 设置QComboBox列宽,确保它完全可见 table->setColumnWidth(2, comboBox->sizeHint().width()); // 将QComboBox插入到表格中 table->setCellWidget(i, 2, comboBox);
-
利用Qt的QTableWidget类实现如图所示的表格,第一列为文本信息,第二列为QDateEdit组件,第三列为QComboBox组件,第四列为QSpinBox组件。在QDateEdit组件中获取当前日期,并设置日历弹出模式;在QComboBox中添加男和女;在QSpinBox中设置初值为1000,步长为1000。按要求在构造函数中完成如图所示表格数据
#include <QTableWidget> #include <QDateEdit> #include <QComboBox> #include <QSpinBox> #include <QTableWidgetItem> Dialog::Dialog(QWidget *parent) : QDialog(parent) { this->setWindowTitle("QTableWidget"); QTableWidget *table = new QTableWidget(6, 4, this); table->resize(400, 300); QStringList list; list << "Num" << "DateTime" << "Sex" << "Income"; table->setHorizontalHeaderLabels(list); for (int i = 0; i < table->rowCount(); i++) { /***********Program*********/ /***********End*************/ } }
答案
// 第一列为文本信息 QTableWidgetItem *textItem = new QTableWidgetItem("Text " + QString::number(i + 1)); table->setItem(i, 0, textItem); // 第二列为QDateEdit组件 QDateEdit *dateEdit = new QDateEdit(QDate::currentDate()); dateEdit->setCalendarPopup(true); // 设置日历弹出模式 table->setCellWidget(i, 1, dateEdit); // 第三列为QComboBox组件 QComboBox *comboBox = new QComboBox; comboBox->addItem("Male"); comboBox->addItem("Female"); table->setCellWidget(i, 2, comboBox); // 第四列为QSpinBox组件 QSpinBox *spinBox = new QSpinBox; spinBox->setRange(1000, 10000); spinBox->setSingleStep(1000); spinBox->setValue(1000); table->setCellWidget(i, 3, spinBox);
-
创建基于QDialog类的应用程序,利用布局管理器实现如图所示的登陆界面。在构造函数中实现,实现效果如图所示
文章来源:https://www.toymoban.com/news/detail-799017.html
#include<QLabel> #include<QLineEdit> #include<QGridLayout> #include<QHBoxLayout> #include<QVBoxLayout> #include<QPushButton> #include<QFormLayout> Dialog::Dialog(QWidget *parent) : QDialog(parent) { this->setWindowTitle("登录界面设计"); /**********Program**********/ /********** End **********/ }
答案:文章来源地址https://www.toymoban.com/news/detail-799017.html
QHBoxLayout *h1 = new QHBoxLayout; //第一行布局 QLabel *l1 = new QLabel("学号:"); QLineEdit *num = new QLineEdit(); h1->addWidget(l1); h1->addWidget(num); QHBoxLayout *h2 = new QHBoxLayout; // 第二行布局 QLabel *l2 = new QLabel("姓名:"); QLineEdit *name = new QLineEdit(); h2->addWidget(l2); h2->addWidget(name); QHBoxLayout *h3 = new QHBoxLayout; // 第三行布局 QLabel *l3 = new QLabel("密码:"); QLineEdit *pwd = new QLineEdit(); pwd->setEchoMode(QLineEdit::Password); h3->addWidget(l3); h3->addWidget(pwd); QHBoxLayout *h4 = new QHBoxLayout; // 按钮行布局 QPushButton *ok = new QPushButton("确认"); QPushButton *reset = new QPushButton("重置"); QPushButton *cancel = new QPushButton("取消"); h4->addWidget(ok); h4->addWidget(reset); h4->addWidget(cancel); QVBoxLayout *vl = new QVBoxLayout; // 将所有行都竖向排列 vl->addLayout(h1); vl->addLayout(h2); vl->addLayout(h3); vl->addLayout(h4); QGridLayout *gl = new QGridLayout; // 格栅,让部件大小随着窗口大小改变 gl->addLayout(vl, 0, 0); setLayout(gl); // 将格栅设置为主布局
到了这里,关于[Qt期末救急]2.1w字真题汇总,带详细解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!