




已阅读5页,还剩68页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用户界面组件 1 用户界面组件 用户界面由单个部件 widget 构成设计器 QtDesigner 中有46个部件 widget 直接派生自QWidget的部件超过59个 QLabel QPushButton QLineEdit QDoubleSpinBox QScrollBar 2 部件中的部件 部件被分层次放置容器类提供可视化结构 但同时也是具有一定功能化的如QRadioButton 需要用彼此间实现互斥 可以将多个QRadioButton放到一个GroupBox中 QGroupBox QTabWidget 3 部件的特点 占据屏幕中一个方形的区域从输入设备接收事件当部件产生变化时 发出信号多个部件以层次式的方法组合构建一个部件中可以包含其他部件 4 布局管理 5 一个对话框例子 部件被放置在布局管理器中 使用户界面具有弹性易伸缩 6 弹性好在哪里 让部件的大小适应内容让部件适应翻译变化让部件适应用户设置 如字体设置等 7 布局管理 几种可用的布局布局管理器和部件 协商 各个部件大小与位置弹簧可以用来填充空白处 QVBoxLayout QHBoxLayout 8 一个对话框例子 对话框由多个层次的布局管理器和部件组成 9 对话框例子 QVBoxLayout outerLayout newQVBoxLayout this QHBoxLayout topLayout newQHBoxLayout topLayout addWidget newQLabel Printer topLayout addWidget c newQComboBox outerLayout addLayout topLayout QHBoxLayout groupLayout newQHBoxLayout outerLayout addLayout groupLayout outerLayout addSpacerItem newQSpacerItem QHBoxLayout buttonLayout newQHBoxLayout buttonLayout addSpacerItem newQSpacerItem buttonLayout addWidget newQPushButton Print buttonLayout addWidget newQPushButton Cancel outerLayout addLayout buttonLayout 10 对话框例子 QHBoxLayout groupLayout newQHBoxLayout QGroupBox orientationGroup newQGroupBox QVBoxLayout orientationLayout newQVBoxLayout orientationGroup orientationLayout addWidget newQRadioButton Landscape orientationLayout addWidget newQRadioButton Portrait groupLayout addWidget orientationGroup QGroupBox colorGroup newQGroupBox QVBoxLayout colorLayout newQVBoxLayout colorGroup colorLayout addWidget newQRadioButton BlackandWhite colorLayout addWidget newQRadioButton Color groupLayout addWidget colorGroup Horizontalbox 包含groupboxes verticalboxes radiobuttons 11 对话框例子 可以使用Qt设计器来建立同样的结构 12 跨平台 13 跨平台风格 部件的绘制使用平台相关的风格以确保本地化外观 14 跨平台问题 比较不同用户界面后我们知道 不仅仅是改变部件外观这么简单 还有其他的一些差别表单布局管理对话框按钮顺序标准对话框 15 跨平台问题 比较不同用户界面后我们知道 不仅仅是改变部件外观这么简单 还有其他的一些差别表单布局管理对话框按钮顺序标准对话框 Plastique ClearLooks Windows MacOSX 16 跨平台问题 比较不同用户界面后我们知道 不仅仅是改变部件外观这么简单 还有其他的一些差别表单布局管理对话框按钮顺序标准对话框 17 跨平台问题 比较不同用户界面后我们知道 不仅仅是改变部件外观这么简单 还有其他的一些差别表单布局管理对话框按钮顺序标准对话框 18 通用部件 19 通用部件 Qt包含针对所有常见需求的大量通用部件Qt设计器中为部件组提供很好的概貌 20 通用部件 按钮 所有按钮继承自QAbstractButton这个基本类 信号clicked 当按钮被按下 并弹起后 发出 toggled bool 当按钮的状态发生改变时发出 属性checkable 当按钮可检查时为真 使按钮激活 checked 当按钮被标记时为真 用于复选或单选按钮 text 按钮的文本 icon 按钮的图标 可以和文本同时显示 QAbstractButton QPushButton QCheckBox QRadioButton 21 通用部件 列表项部件 QListWidget用于显示列表项添加项目addItem QString 将项目附加到列表末端insertItem introw QString 将项目插入到指定行选择项目selectedItems 返回QListWidgetItem的列表 使用QListWidgetItem text来形成文本信号itemSelectionChanged 当选择状态改变时发出QComboBox以更紧密的格式展示一个单选的项目列表 QListWidget QComboBox 22 通用部件 容器 容器部件用来结构化用户界面一个简单的QWidget对象可当做容器来使用设计器 将部件放置在容器中并为容器提供一个布局管理器代码 为容器创建一个布局管理器并将部件添加进布局管理器 布局管理器以容器为父对象 QGroupBox box newQGroupBox QVBoxLayout layout newQVBoxLayout box layout addWidget QGroupBox QTabWidget QFrame 23 通用部件 输入部件 使用QLineEdit实现单行文本输入信号textChanged QString 文本状态改变时发出editingFinished 部件失去焦点时发出returnPressed 回车键被按下时发出属性text 部件的文本maxLength 限定输入的最大长度readOnly 设置为真时文本不可编辑 仍允许复制 QLineEdit 24 通用部件 输入部件 使用QTextEdit和QPlainTextEdit实现多行文本输入SignalstextChanged 文本状态改变时发出属性plainText 无定义格式文本html HTML格式文本readOnly 设置为真时文本不可编辑QComboBox通过editable属性使其可编辑SignalseditTextChanged QString 当文本正被编辑时发出属性currentText combobox的当前文本 QComboBox QTextEdit 25 通用部件 输入部件 编辑整型数据有许多可选的输入部件也有许多用于double time和date类型的部件信号valueChanged int 当数值更新时发出属性value 当前值maximum 最大值minimum 最小值 QSlider QScrollBar QDial QSpinBox QAbstractSlider 26 通用部件 显示部件 QLabel部件显示文本或者图片属性text 标签文本pixmap 显示的图片QLCDNumber用于显示整形数值属性intValue 显示的数值 使用display int 函数进行设置 QLabel QLCDNumber QLabel 27 通用部件 属性 所有部件有一系列继承自QWidget类的共同属性enabled 用户交互可用或不可用visible 显示或不显示 show或hide函数 这些属性同时影响到子部件例如使一个容器部件不可用时 28 QMessageBox 信息框是可以显示提示信息 并接受用户按钮输入的一种对话框信息框使用方式一 静态函数StandardButtonQMessageBox warning QWidget parent constQString title constQString text StandardButtonsbuttons Ok StandardButtondefaultButton NoButton Parent 父组件指针Title 标题Text 提示文本Buttons 提示框中的按钮 可用或 运算添加多个按钮defaultButton 默认选中的按钮类似函数还有QMessageBox information QMessageBox critical QMessageBox question QMessageBox about 29 QMessageBox intret QMessageBox warning this tr MyApplication tr Thedocumenthasbeenmodified n Doyouwanttosaveyourchanges QMessageBox Save QMessageBox Discard QMessageBox Cancel QMessageBox Save switch ret caseQMessageBox Save Savewasclickedbreak caseQMessageBox Discard Don tSavewasclickedbreak caseQMessageBox Cancel Cancelwasclickedbreak default shouldneverbereachedbreak 30 QMessageBox 信息框使用方式二 构造函数QMessageBox QMessageBox Iconicon constQString title constQString text StandardButtonsbuttons NoButton QWidget parent 0 Qt WindowFlagsf Qt Dialog Qt MSWindowsFixedSizeDialogHint icon 图标 可取值为MessageBox NoIcon QMessageBox Question QMessageBox Information QMessageBox Warning QMessageBox CriticalTitle 标题Text 提示文本Buttons 提示框中的按钮 可用或 运算添加多个按钮parent 父组件指针F 窗口系统属性 31 QMessageBox QMessageBoxmessage QMessageBox NoIcon tr MyApplication tr Thedocumenthasbeenmodified n Doyouwanttosaveyourchanges QMessageBox Save QMessageBox Discard QMessageBox Cancel switch message exec caseQMessageBox Save Savewasclickedbreak caseQMessageBox Discard Don tSavewasclickedbreak caseQMessageBox Cancel Cancelwasclickedbreak default shouldneverbereachedbreak 32 尺寸策略 33 尺寸 size 的策略 布局是在布局管理器和部件间进行协调的过程布局管理器提供布局结构水平布局和垂直布局网格布局部件则提供各个方向上的尺寸策略最大和最小尺寸 34 尺寸的策略 printerList setSizePolicy QSizePolicy Expanding QSizePolicy Fixed 35 尺寸的策略 每一个部件都有一个尺寸大小的示意 hint 给出水平和垂直方向上的尺寸的策略Fixed 规定了widget的尺寸Minimum 规定了可能的最小值Maximum 规定可能的最大值Preferred 给出最佳值 但不是必须的Expanding 同preferred 但希望增长MinimumExpanding 同minimum 但希望增长Ignored 忽略规定尺寸 widget得到尽量大的空间 36 尺寸的策略 每一个部件都有一个尺寸大小的示意 hint 给出水平和垂直方向上的尺寸的策略Fixed 固定大小 最严格 Minimum 可增长Maximum 可缩小Preferred 可增长可缩小Expanding 可增长可缩小 希望增长MinimumExpanding 可增长并且希望增长Ignored 忽略尺寸示意 可增长可缩小 37 如果 2个preferred相邻1个preferred 1个expanding2个expanding相邻空间不足以放置widget fixed 38 关于尺寸的更多内容 可用最大和最小属性更好地控制所有部件的大小maximumSize 最大可能尺寸minimumSize 最小可能尺寸 ui pushButton setMinimumSize 100 150 ui pushButton setMaximumHeight 250 39 QtDesigner 40 QtDesigner Qt应用程序除了使用手工编写代码的方式外 还可以用过QtDesinger来完成QtDesigner曾是一个独立的Qt桌面工具 现在集成于QtCreator中只需要拖动相应的控件输出为 ui文件 内容其实就是XMLUic编译器把 ui文件转换成 h文件myproject ui ui myproject h 41 设计器介绍 sources cpp executables objectfiles o headers h generatedmoc cpp userinterfaces ui 42 设计器介绍 sources cpp executables objectfiles o headers h generatedmoc cpp generatedui h userinterfaces ui uic 43 使用代码 ifndefWIDGET H defineWIDGET H includenamespaceUi classWidget classWidget publicQWidget Q OBJECTpublic Widget QWidget parent 0 Widget private Ui Widget ui endif WIDGET H Ui Widget类的前置声明 一个Ui Widget类指针ui 指向所有部件 基本上是一个标准的QWidget派生类 44 使用代码 include widget h include ui widget h Widget Widget QWidget parent QWidget parent ui newUi Widget ui setupUi this Widget Widget deleteui 实例化类Ui Widget为ui 删除ui对象 调用函数setupUi 生成所有父窗体 this 的子窗体部件 45 使用设计器 基本工作流程粗略地放置部件在窗体上从里到外进行布局 添加必要的弹簧进行信号连接在代码中使用在整个过程中不断修改编辑属性实践创造完美 46 使用设计器 拖放部件 粗略地放置部件在窗体上 47 使用设计器 从里到外进行布局 添加必要的弹簧 1 2 1 选中每一个groupbox 2 应用垂直布局管理 48 使用设计器 从里到外进行布局 添加必要的弹簧 1 1 选中label click 2 选中combobox Ctrl click 2 49 使用设计器 从里到外进行布局 添加必要的弹簧 1 1 应用一个水平布局管理 50 使用设计器 从里到外进行布局 添加必要的弹簧 1 3 1 选中2个groupbox并进行布局管理 2 添加一个水平弹簧 3 将弹簧和按钮放置进一个布局管理器中 2 51 使用设计器 从里到外进行布局 添加必要的弹簧 1 3 1 添加一个垂直弹簧 2 选中窗体本身 3 应用一个垂直布局管理 2 52 使用设计器 进行信号连接 部件之间 1 2 3 4 1 转到signalsandslot编辑模式 2 从一个部件拖放鼠标到另一个部件 3 选中signalandslot 4 在信号和槽编辑器中查看结果 53 使用设计器 进行信号连接 到你的代码中 1 2 3 1 在widgetediting模式中2 右击一个部件并选择Gotoslot 3 选择一个信号来连接到你的代码 54 使用设计器 在代码中使用通过ui类成员使用访问其所有子部件 classWidget publicQWidget private Ui Widget ui voidWidget memberFunction ui pushButton setText 55 顶层窗体 56 顶层窗体 没有父部件的部件自动成为窗体QWidget 普通窗体 通常无模式QDialog 对话框 通常期望一个结果如OK Cancel等QMainWindow 应用程序窗体 有菜单 工具栏 状态栏等QDialog和QMainWindow继承自QWidget 57 使用QWidget作为窗体 任何部件都可成为窗体没有父部件的部件自动成为窗体拥有父部件的部件需要传递Qt Window标志给QWidget构造函数使用setWindowModality函数设定不同模式NonModal 所有窗体可立即使用WindowModal 父窗体阻塞ApplicationModal 所有其他窗体阻塞 58 窗体属性 使用setWindowTitle设置窗体标题QWidget构造函数和窗体标志位QWidget QWidget QWidget parent Qt WindowFlagsf 0 Qt Window 生成一个窗体Qt CustomizeWindowHint 自定制 不用缺省设置Qt WindowMinimizeButtonHintQt WindowMaximizeButtonHintQt WindowCloseButtonHintetc 59 使用QDialog 搜索对话框是典型的自定对话框继承自QDialog使用设计器或代码来建立用户界面QLabel和QRadioButton是 输出 OK Cancel按钮 60 程序接口 classSearchDialog publicQDialog Q OBJECTpublic explicitSearchDialog constQString 61 SearchDialog SearchDialog constQString 实现 62 使用Dialog voidMyWindow myFunction SearchDialogdlg settings value searchText toString settings value searchBackward false toBool this if dlg exec QDialog Accepted QStringtext dlg searchText boolbackwards dlg isBackward 软件接口已经被定义以使其更易于使用 63 使用QMainWindow QMainWindow是普通桌面程序的文档窗体菜单栏工具栏状态栏停靠窗体中心部件 64 QAction 65 QAction介绍 许多用户界面元素有相同的用户行为 action 一个QAction对象可以表示所有这些操作方式 并保持工具提示 状态栏提示等等 Ctrl S Action 66 QAction介绍 一个QAction封装所有菜单 工具栏和快捷键需要的设置常用属性有text 各处所用的文本icon 各处用到的图标shortcut 快捷键checkable checked 当前操作
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 服务抗压方法培训
- 中考体育培训总结
- 2026届黑龙江省鸡西虎林市东方红林业局化学九上期末达标检测试题含解析
- 山东省聊城市第三中学新校区2024-2025学年高三上学期第一次月考生物试题
- 2025年电站安全规程考试题库及答案
- 安徽省砀山县联考2026届九年级英语第一学期期末考试试题含解析
- 2026届内蒙古自治区赤峰市翁牛特旗第一中学九年级化学第一学期期末达标测试试题含解析
- 2026届四川省成都嘉祥外国语学校化学九上期末预测试题含解析
- 2026届安徽省六安市裕安区英语九上期末学业质量监测模拟试题含解析
- 2026届三门峡市重点中学化学九上期中复习检测试题含解析
- 2025年秋国家开放大学《形势与政策》形考大作业答案
- 化工安全网络培训课件
- 2025年超细氢氧化铝行业研究报告及未来行业发展趋势预测
- 2025-2026学年人美版(2024)小学美术二年级上册(全册)教学设计(附目录P188)
- 2025年高考(新课标Ⅱ卷)英语试题及答案
- 电子元器件供货方案与保证措施
- 2025便利店便利店员工劳动合同范本
- 小学二年级体育教案全集全册1
- 2025秋八年级上册道德与法治新教材全册知识点提纲
- 2024年北京人民艺术剧院招聘笔试真题
- 军事仿真演练系统设计
评论
0/150
提交评论