清华计算机系程设小学期-Qt部件与事件处理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

QT部件与事件处理第二讲清华大学计算机系课程主要内容用户界面组件介绍部件的布局管理通用部件部件的尺寸策略QtDesigner顶层窗体Qt图标Qt事件处理2用户界面组件介绍3用户界面组件用户界面由单个部件(widget)构成QLabelQPushButtonQLineEditQDoubleSpinBoxQScrollBar4部件中的部件部件被分层次放置容器类提供可视化结构,但同时也是具有一定功能化的如QRadioButton,需要用彼此间实现互斥,可以将多个QRadioButton放到一个GroupBox中QGroupBoxQTabWidget5部件的特点占据屏幕中一个方形的区域从输入设备接收事件当部件产生变化时,发出信号多个部件以层次式的方法组合构建一个部件中可以包含其他部件6部件的布局管理7一个对话框例子部件被放置在布局管理器中—使用户界面具有弹性易伸缩8弹性好在哪里?让部件的大小适应内容让部件适应翻译变化让部件适应用户设置,如字体设置等9布局管理几种可用的布局布局管理器和部件“协商”各个部件大小与位置弹簧可以用来填充空白处QGridLayoutQFormLayoutQVBoxLayoutQHBoxLayout10一个对话框例子对话框由多个层次的布局管理器和部件组成注意:布局管理器并不是其管理的部件的父对象11对话框例子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);12对话框例子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,radiobuttons13对话框例子可以使用Qt设计器来建立同样的结构14通用部件15通用部件Qt包含针对所有常见需求的大量通用部件Qt设计器中为部件组提供很好的概貌16通用部件―按钮所有按钮继承自QAbstractButton这个基本类。信号clicked()–当按钮被按下(并弹起后)发出。toggled(bool)–当按钮的状态发生改变时发出。属性checkable–当按钮可检查时为真。使按钮激活。checked–当按钮被标记时为真。(用于复选或单选按钮)text–按钮的文本。icon–按钮的图标(可以和文本同时显示)。QAbstractButtonQPushButtonQCheckBoxQRadioButton17通用部件―列表项部件QListWidget用于显示列表项添加项目addItem(QString)–将项目附加到列表末端insertItem(introw,QString)–将项目插入到指定行选择项目selectedItems–返回QListWidgetItem的列表,使用QListWidgetItem::text来形成文本信号itemSelectionChanged–当选择状态改变时发出QComboBox以更紧密的格式展示一个单选的项目列表。QListWidgetQComboBox18通用部件―容器容器部件用来结构化用户界面一个简单的QWidget对象可当做容器来使用设计器:将部件放置在容器中并为容器提供一个布局管理器代码:为容器创建一个布局管理器并将部件添加进布局管理器(布局管理器以容器为父对象)QGroupBox*box=newQGroupBox();QVBoxLayout*layout=newQVBoxLayout(box);layout-addWidget(...);...QGroupBoxQTabWidgetQFrame19通用部件―输入部件使用QLineEdit实现单行文本输入信号textChanged(QString)–文本状态改变时发出editingFinished()–部件失去焦点时发出returnPressed()–回车键被按下时发出属性text–部件的文本maxLength–限定输入的最大长度readOnly–设置为真时文本不可编辑(仍允许复制)QLineEdit20通用部件―输入部件使用QTextEdit和QPlainTextEdit实现多行文本输入SignalstextChanged()-文本状态改变时发出属性plainText–无定义格式文本html–HTML格式文本readOnly–设置为真时文本不可编辑QComboBox通过editable属性使其可编辑SignalseditTextChanged(QString)–当文本正被编辑时发出属性currentText–combobox的当前文本QComboBoxQTextEdit21通用部件―输入部件编辑整型数据有许多可选的输入部件也有许多用于double,time和date类型的部件信号valueChanged(int)–当数值更新时发出属性value–当前值maximum–最大值minimum–最小值QSliderQScrollBarQDialQSpinBoxQAbstractSlider22通用部件―显示部件QLabel部件显示文本或者图片属性text–标签文本pixmap–显示的图片QLCDNumber用于显示整形数值属性intValue–显示的数值(使用display(int)函数进行设置)QLabelQLCDNumberQLabel23通用部件―属性所有部件有一系列继承自QWidget类的共同属性enabled–用户交互可用或不可用visible–显示或不显示(show或hide函数)这些属性同时影响到子部件例如使一个容器部件不可用时:24QMessageBox信息框是可以显示提示信息,并接受用户按钮输入的一种对话框信息框使用方式一:静态函数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(…),…25QMessageBoxintret=QMessageBox::warning(this,tr(MyApplication),tr(Thedocumenthasbeenmodified.\nDoyouwanttosaveyourchanges?),QMessageBox::Save|QMessageBox::Discard|QMessageBox::Cancel,QMessageBox::Save);switch(ret){caseQMessageBox::Save://Savewasclickedbreak;caseQMessageBox::Discard://Don'tSavewasclickedbreak;caseQMessageBox::Cancel://Cancelwasclickedbreak;default://shouldneverbereachedbreak;}26QMessageBox信息框使用方式二:构造函数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:窗口系统属性27QMessageBoxQMessageBoxmessage(QMessageBox::NoIcon,tr(MyApplication),tr(Thedocumenthasbeenmodified.\nDoyouwanttosaveyourchanges?),QMessageBox::Save|QMessageBox::Discard|QMessageBox::Cancel);switch(message.exec()){caseQMessageBox::Save://Savewasclickedbreak;caseQMessageBox::Discard://Don'tSavewasclickedbreak;caseQMessageBox::Cancel://Cancelwasclickedbreak;default://shouldneverbereachedbreak;}28部件的尺寸策略29尺寸(size)的策略布局是在布局管理器和部件间进行协调的过程布局管理

1 / 83
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功