版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
——基于Qt(Windows)版医用仪器软件设计MedicalInstrumentSoftwareDesign2022第2章Qt的类与控件——BasedonQt(WindowsEdition)关于这节课Aboutthiscourse.“Qt提供了非常丰富的类和API接口,便于开发者进行应用程序设计。此外,Qt还提供了大量的控件,使图形用户界面的设计变得更简单。其中,每个控件都有一个专属类,专属类中包含了用于设置控件属性的各种方法,合理利用这些方法即可设计出丰富多彩的图形用户界面。One
目录Qt的3种基本类字符串类QStringQt开发环境介绍容器类QList控件本章任务本章习题Qt的3种基本类Qwidget类的常用值Qt::FramelessWindowHint没有边框的窗口Qt::WindowStaysOnTopHint总是最上面的窗口Qt::CustomizeWindowHint关闭默认窗口标题提示Qt::WindowTitleHint为窗口添加一个标题栏Qt::WindowSystemMenuHint为窗口添加最小化按钮Qt::WindowMinimizeButtonHint为窗口添加最大化按钮Qt::WindowMaximizeButtonHint为窗口添加最大化和最小化按钮Qt::WindowMinMaxButtonsHint为窗口添加最大化和最小化按钮Qt::WindowCloseButtonHint窗口只有一个关闭按钮1.QWidget类
QWidget类是所有用户界面对象的基类,是基础窗口部件。QWidget类同时继承自QObject类和QPaintDevice类,这里的QPaintDevice类则是所有可绘制的对象的基类。QWidget类的构造方法如下:
其中参数parent指向父窗口,如果这个参数为0,则该窗口为顶级窗口。参数f为构造窗口的标志,主要用于控制窗口的类型和外观等,常用值如右表所示。
如果想去掉某个属性直接加“~”即可,如下所示:setWindowFlags(windowFlags()&~Qt::WindowMaximizeButtonHint);//去掉最大化按钮QWidget(QWidget*parent=0,Qt::WindowFlagsf=0);2.QDialog类
QDialog类继承于QWidget类,是所有对话框窗口的基类。对话框窗口是一个顶级窗口,主要用于短期任务以及和用户进行简要通信。按照运行对话框时是否还可以和该程序的其他窗口进行交互,将对话框分为模态和非模态。模态对话框:即在没有关闭之前,用户不能再与同一个应用程序的其他窗口进行交互,例如“新建项目”的对话框。非模态对话框:既可以与它交互,还可以与同一个应用程序的其他窗口进行交互,例如“文本查找与替换”的对话框。半模态对话框:介于模态和非模态之间。(少用)以上3种对话框的具体内容将在5.3节中介绍3.QMainWindow类
QMainWindow类继承自QWidget类,提供一个主应用程序窗口,MainWindow的结构分为以下5个部分:菜单栏、工具栏、停靠窗口、状态栏和中央窗口。其中,中央窗口可以是任何形式的widget,不建议为空。菜单栏(QMenuBar):包含多个菜单(QMenu),每个菜单还可以添加菜单项(QAction)。工具栏(QToolBar):应用程序集成各种功能快捷方式的区域,工具栏的元素可以是各种窗口组件,通常以图标按钮的形式存在。与菜单栏类似,工具栏的选项也由QAction定义。状态栏(QStatusBar):应用程序中输出简要信息的区域,通常位于主应用窗口程序底部。状态栏显示的消息类型一般有以下3种:实时消息、永久消息和进度消息。QStatusBar是容器型组件,可以是任何QWidget的父组件。4.字符串类QString
字符串类QString是Qt编程中使用非常频繁的类,大部分程序基本都涉及字符串的处理。QString以Unicode编码的形式存储一串16位的QChar字符,Unicode是国际字符编码标准,支持绝大部分文字处理系统。此外,QString使用隐式共享(ImplicitSharing)的参数传递方式来减少内存使用和避免不必要的数据复制,不仅安全,还效率高。因为在这个过程中,只有指向这个数据的指针被传递,并且有方法对这个数据进行写操作时,才会复制该数据。除了用作数字量的输入输出,QString还有很多其他功能,熟悉常用的功能,有助于对字符串的灵活处理,实现Qt的快速开发。1.编辑字符串Qt提供了多种简便的方法来编辑字符串,下面简要介绍几种常用的方法。append()append()方法用于在字符串后面添加字符或字符串,方法原型为QString&QString::append(constQString&str),参数str为待添加的字符或字符串。如下所示:prepend()prepend()方法用于在字符串前面添加字符或字符串,方法原型为QString&QString::prepend(constQString&str),用法与append()基本一致,如:append()insert()方法用于在指定位置添加指定的字符或字符串,方法原型为QString&QString::insert(intposition,constQString&str),其中参数position为插入位置的索引值,参数str为待插入的字符或字符串。如下所示:remove()remove()方法用于在指定位置移除指定数量的字符,方法原型为QString&QString::remove(intposition,intn),其中参数position为移除位置的索引值,参数n为待移除字符的数量。如下所示:replace()replace()方法用于替换指定位置,指定数量的字符,方法原型为QString&QString::replace(intposition,intn,constQString&after),其中参数position为替换位置的索引值,参数n为待替换字符的数量,参数after为待替换的字符或字符串。如下所示:trimmed()trimmed()方法用于去除字符串两端的空白字符(包括回车字符“\n”、换行字符“\r”、制表符“\t”和空格“”等),方法原型为QStringQString::trimmed()const。如下所示:simplified()simplified()方法用于去除字符串两端空白字符的同时,将字符串中间连续的空白字符替换为单个空格,方法原型为QStringQString::simplified()const。如下所示:split()split()方法通过指定符号将一个字符串分割为多个子字符串。如下所示:2.字符串查询count()、size()和length()count()、size()和length()方法的功能都是返回字符串中字符的个数。如下所示:at()at()方法返回字符串中指定索引位置的字符。如下所示:startsWith()和endsWith()startsWith()方法用于判断字符串是否以某个字符串开头,endsWith()方法用于判断字符串是否以某个字符串结尾,是则返回true,否则返回false。如下所示:contains()contains()方法用于判断在当前字符串中是否包含指定的字符串,方法原型为boolQString::contains(constQString&str,Qt::CaseSensitivitycs=Qt::CaseSensitive)const,若包含则返回true,否则返回false。参数Qt::CaseSensitive表示区分大小写,Qt::CaseInsensitive不区分大小写isEmpty()和isNull()isEmpty()和isNull()方法的功能都是判断字符串是否为空,但略有差别:只有对于未赋值的字符串,isNull()才会返回true;对于一个只有“\0”的空字符串,isEmpty()返回true,而isNull()返回false。indexOf()和lastIndexOf()indexOf()方法用于在当前字符串中查找指定字符串首次出现的位置,未找到则返回-1,方法原型为intQString::indexOf(constQString&str,intfrom=0,Qt::CaseSensitivitycs=Qt::CaseSensitive)const,参数str为待查找的字符串,参数from为开始查找的位置,参数Qt::CaseSensitivitycs指定是否区分大小写,省略时默认为区分大小写。如下所示:3.字符串的转换toInt()QString::toInt()可以将字符串转换为整型数值,方法原型为intQString::toInt(bool*ok=Q_NULLPTR,intbase=10)const。第一个参数为bool类型的指针,用于返回转换的状态,转换成功返回true,否则返回false;第二个参数指定了转换的基数,可以通过设置该参数将字符串以其他的进制转换方式转换为整型数值,省略时默认为10进制转换。类似的方法还有toFloat()、toDouble()、toLong()和toLongLong()等。如下所示:
QString类提供了丰富的转换方法,可以将一个字符串转换为各种数值类型或其他字符串编码集。toUpper()和toLower()QString::toUpper()和QString::toLower()分别可以返回字符串大写和小写形式的副本。如下所示:QString::number()QString::number()可以将整数转换为字符串,方法原型为QStringQString::number(intn,intbase=10)。第一个参数为待转换的整数,第二个参数指定转换的基数,省略时默认以十进制进行转换,可以通过设置该参数将整数以其他进制的转换方式转换为字符串。如下所示:容器类QList
Qt提供了很多基于模板的容器类,如常用的容器类QList<T>,T是一种具体的数据类型,包含简单的int、float和double等基本数据类型,以及Qt的一些数据类型(如QString、QData和QTime等)。存储在容器中的数据必须是可赋值的数据类型,这种数据类型必须提供一个省略参数的构造方法、一个可复制构造方法和一个赋值运算符。QObject类及其子类是无法存储在容器中的,因为这些类没有可复制构造方法和赋值运算符。
相比于C++标准模板库,Qt的容器类在速度、存储和内联代码等多个方面进行了优化,使其更加安全且易于使用。
QList<T>中存储了一个类型为T的数据列表,因为这些数据是按线性存储的,所以也称为顺序容器,列表中的数据可以通过索引访问。在内部,QList使用数组来实现,因此可以通过列表方法来编辑存储的数据列表。控件
Qt提供了多种类型的控件,便于用户进行图形界面设计。在设计模式下,可看到这些控件被分为8个组:Layouts——布局管理组Spaces——空间间隔组Buttons——按钮组、ItemViews(Model-Based)——项目视图组ItemWidgets(Item-Based)——项目控件组Containers--容器组InputWidgets-输入部件组DisplayWidgets--显示部件组1.布局管理组控
件含
义VerticalLayout垂直布局HorizontalLayout水平布局GridLayout网格布局FormLayout表单布局2.空间间隔组控
件含
义HorizontalSpacer水平空间间隔VerticalSpacer垂直空间间隔3.按钮组控
件含
义PushButton按钮ToolButton工具按钮RadioButton单选按钮CheckBox复选框CommandLinkButton命令链接按钮DialogButtonBox对话框按钮盒常用:PushButton、RadioButton、CheckBox和ToolButton。4.项目视图组控
件含
义ListView清单视图TreeView树视图TableView表视图ColumnView列视图UndoView撤销视图5.项目控件组控
件含
义ListWidget清单控件TreeWidget树形控件TableWidget表控件6.容器组控
件含
义GroupBox分组框ScrollArea滚动区域ToolBox工具箱TabWidget标签小部件StackedWidget堆叠部件Frame帧Widget小部件MDIAreaMDI区域DockWidget停靠窗体部件QAxWidget封装Flash的ActiveX控件常用:GroupBox。7.输入部件组控
件含
义ComboBox组合框FontComboBox字体组合框LineEdit行编辑框TextEdit文本编辑框PlainTex
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 体育简讯格式及范文
- 体育学周工作计划
- 2026 学龄前自闭症情绪基础巩固课件
- 全民科学素质行动规划纲要实施方案
- 2026届安徽省马鞍山市中考试题猜想语文试卷含解析
- 六年级劳动教案
- 低碳环保绿色出行的口号
- 健身顾问招聘笔试题(某世界500强集团)2025年题库精析
- 企业文化理念小故事
- 电子商务安全教学大纲
- 室内设计平面概念方案汇报
- 河北省石家庄市七县2024-2025学年高二下学期4月期中考试 物理 含解析
- 2025年软件定义汽车:SOA和中间件行业研究报告
- 国家军事安全课件
- 驾校安全生产隐患排查治理制度
- 马工程《艺术学概论》课件424P
- C919机组培训-导航系统
- 鼻出血指南课件
- 2024北京师范大学出版集团职业教育分社招聘2人笔试备考题库及答案解析
- 非煤矿山安全教育培训试题及答案
- (正式版)JTT 1482-2023 道路运输安全监督检查规范
评论
0/150
提交评论