2019-9-10
-
基础窗口部件QWidget
QWidget的构造函数有两个参数:parent与Qt::Windowflags -
对话框
按照运行对话框时是否还可以与该程序的其他窗口进行交互,对话框常被分为两类:模态(交互)和非
模态的(不交互)。
setModal函数
使用快捷方式更改所有出现该变量的地方:
右击->Refactor->Rename Symbol Under Cursor
或者Ctrl+Shift+R
进行窗口的切换中:
accept()函数是QDialog类中的一个槽,对于一个使用exec()函数实现的模态对话框,执行这个槽
就会隐藏这个模态对话框,并返回QDialog::Accepted值。
关于窗口的切换这里,有需要注意的两点地方:
- 如果说某个窗口一闪而过,很有可能是因为其所在函数执行完之后定义的变量均被回收了,这时我们需要使用new在堆空间进行定义,注意这里我们如果指定父亲的话,我们并不需要对内存空间进行释放。
- 这里还需要使用if进行判断,否则出现的dlg无法进入主界面。
这里列举常见的几种标准对话框:
我们可以直接利用类的静态函数来显示对话框,好处是不用创建对象;
我们也可以先创建对象,然后进行各项更加灵活的设置。
-
对话框(QColorDialog)
-
文件对话框(QFileDialog)
-
字体对话框(QFontDialog)
-
输入对话框(QInputDialog)
-
消息对话框(QMessageBox)
-
进度对话框(QProgressDialog)
-
错误信息对话框(QErrorMessage)这里默认有一个Show this message again复选框,我们需要记住是否选择了它,所以这里要将该类的对象设置为成员变量,而不能直接在槽中创建对话框。这里需要注意的是,只有是成员变量时才可以保存状态,在构造函数中定义一个变量是会出错的,它的作用域仅仅局限于构造函数之中。
-
向导对话框(QWizard)可以定义不同的createpage函数,这样方便对每一个页面的样式进行设计。
- 其他窗口部件
1)QFrame类族
lineWidth和midLineWidth的区别:
前者是边框边界线的宽度,后者是在边框中额外插入一条线的长度,只有在有线的时候才有用。
- QLabel
wordWrap属性可以实现文本的自动换行
QFontMetrics类可以可以对文本进行自动省略
scaledContents属性可以实现缩放标签里的内容 - QLCDNumber
- QStackWidget:需要利用其它部件对它进行控制
- QToolBox:层叠窗口部件
2)按钮部件
- QPushButton checkable属性使得它可以拥有选中和未选中两种状态(toggled是否被按下)
- QCheckBox、QRadioButton、QGroupBox
- QLineEdit:显示模式、输入掩码(returnpressed按下回车键)、输入验证、自动补全
3)QAbstractSpinBox
- QDateTimeEdit:日期时间设定
- QSpinBox:整数设定
- QDoubleSpinBox:浮点数设定
可以使用value函数来获得值
4)QAbstractSlider