常用的一般有QMainWindow(带有菜单栏、工具栏的主窗口类)、QDialog(对话框)、QWidget.
QWidget:
QWidget是最基础的窗口部件,提供了绘制自己和处理用户输入事件的基本功能,Qt提供的所有界面元素不是QWidget的子类就是与QWidget的子类相关联的。因此可以以继承QWidget或者它的子类来设计自己的窗口部件。
QWidget构造函数有两个参数,QWidget *parent=0和Qt::WindowFlags f=0。前者表是否有父窗口,0为没有。f 参数是Qt::WindowFlags类型的,是一个枚举类型,分为窗口类型和窗口标志。f=0表明使用Qt::Widget一项,即若有父窗口,则为子部件,否则为独立窗口。Qt::Dialog、Qt::SplashScreen也是窗口类型。前者为对话框、后者为欢迎窗口类型。窗口类型可以与窗口标志作位或运算,使窗口标志起作用,主要是更改窗口的标题栏和边框。如Qt::Dialog|Qt::FramelessWindowHint产生一个没有边框的窗口、Qt::SplashScreen|Qt::WindowStaysOnTopHint使窗口处于最顶层。
QWidget中setWindowState()用于设置窗口:最大化Qt::WindowMaximized、最小化Qt::WindowMinimized、全屏显示Qt::WindowFullScreen等。默认为Qt::WindowNoState
窗口的几何布局:
对话框QDialog:
模态与非模态的区别,模态为没有关闭它之前,不能与同一个应用程序的其它窗口交互。前者可用.exec()调用,后者可用.show()
对于模态也可用.setModal(true);.show()结合。还有与setModal()类似的setWindowModality()函数,其有一个参数,可能取值:Qt::NonModal(不阻塞任何窗口,就是非模态)、Qt::WindowModal(阻塞父窗口和祖先窗口以及它们的子窗口)、Qt::ApplicationModal(阻塞整个应用程序的所有窗口)。
标准对话框:
颜色对话框:QColorDialog,提供一个可以获取指定颜色的对话框部件。<QColorDialog>
有关相函数:QColotDialog::getColor(Qt::red,this,tr("颜色对话框"),QColorDialog::ShowAlphaChannel).
创建对像可用QColorDialog dialog(Qt::red,this);
dialog.setOption(QColorDialog::showAlphaChannel);//显示alpha选项
dialog.currentColor()//获取当前颜色
QColor类型为{透明度、红色、绿色、蓝色}
文件对话框:QFileDialog,允许用户选择文件或文件夹的对话框。<QFileDialog>
getOpenFileName()返回选择的文件名,四个参数:指定父窗口、对话框标题、默认打开的目录路径、设置文件类型过滤器。还可以设置多个不同类别的过滤器、不同类别间使用两个分号;;隔开
getOpenFileNames()可以选择多个文件。用QStringList类型变量接收,上面的用QString类型变量接收。
getSaveFileName()实现保存文件对话框和文件另存为框,getExistingDirectory()函数获取一个已存在的文件夹路径。
字体对话框:QFontDialog,提供一个可以选择字体的对话框,<QFontDialog>
QFont类型、QFontDialog::getFont(,);第一个参数存放按钮状态、第二参数,父窗口。
输入对话框:QInputDialog,从用户中获取单一的数值或字符串。<QInputDialog>
getText()一个可输入字符串的对话框,参数:父、窗口标题、对话框中的标签的显示文本、输入字符串的显示模式(密码可显示成黑点)、输入框中默认字符串、设置获取按下按钮信息的bool值。
getInt()、getDouble、getItem()
消息对话框:QMessageBox类,<QMessageBox>
QMessageBox::question();问题对话框,参数:父、标题栏、显示信息、拥有的按钮,返回值为按钮的值。
QMessageBox::information()提示对话框;QMessageBox::warning()警告对话框;QMessageBox::critical();错误对话框;QMessageBox::about关于对话框。
进度对话框:QProgressDialog,对一个耗时较长的操作进度提供反馈,<QProgressDialog>
QProgressDialog dialog(tr("文件复制进度"),tr("取消"),0,50000,this);
QProgressDialog类对像构造函数参数:标签内容、取消按钮、最小值、最大值和父窗口。
错误消息对话框:QErrorMessage,提供显示错误信息的对话框,<QErrorMessage>
用以下语句创建:QErrorMessage *dialog=new QErrorMessage(this);
向导对话框:QWizard,提供设计向导界面的框架,<QWizard>
有QWizardPage类对象,指向向导页面。QWizard类,指向向导对话框。一个向导对话框可包含多个向导页面。
QWizard类与QWizardPage类的成员函数可以很好的设计自己的向导页面,添加图片与自定义按钮。
还有一些别的对话框:QPageSetupDialog(页面设置对话框)、QPrintDialog(打印对话框)、QPrintPreviewDialog(打印预览对话框)。可使用帮助学习F1.
QFrame类:带有边框的部件基类。(QLabel、QLCDNumber、QSplitter、QStackedWidget、QToolBox、QAbstractScrollArea)。QAbstractScrollArea是所有带有滚动区域的部件类的抽象基类。Qt中带有Abstract字样的都是抽象类,不能直接使用。但可以用于继承该类实现自己的类,或用它的子类(常用的有文本编辑器类QTextEdit和各种项目视图类)。
QLabel:用来显示文本或图片。在QLabel中显示图片,需包含头文件为<QPixmap>,显示gif动态图片,包含头文件<QMovie>.
QLCDNumber:显示数码,具体设置,可用Qt设计师
QStackedWidget:提供部件栈,可以有多个界面,每个界面可以拥有自己的部件,不过每次只能显示一个界面。需要使用QComboBox或者QListWidget来选择它的各个页面。结合List Widget和Stacked Widget使用。
QToolBox:提供一列层叠窗口部件。像QQ中的抽屉效果。
按钮部件:QAbstractButton,按钮的抽象基类,提供按钮的通用功能。包括复选框QCheckBox、标准按钮QPushButton、单选框按钮QRadioButton、QGroupBox和工具按钮QToolButton
行编辑器:QLineEdit是一个单行的文本编辑器,允许用户输入和编辑单行的纯文本内容,而且提供一系列有用的功能:撤销、剪切、拖放等。
显示模式(Normal、NoEcho、Password、PasswordEchoOnEdit)、输入掩码(A、N、a、n、X、x、9、0、D、d、#、H、h、B、b、>、<、!、\)、输入验证(对输入进行约束,QValidator(QIntValidator、QDoubleValidator)、还有正则表达式)、自动补全(QCompleter)。
数值设定框:QAbstractSpinBox类,抽象基类,提供一个数值设定框和一个行编辑器来显示设定值。子类:QDateTimeEdit(QDateTime类)、QSpinBox(用来设置整数)和QDoubleSpinBox(用来设置浮点数)完成日期时间、整数和浮点数的设定。以上在部件栏中可以找到,使用也很简单。
滑块部件:QAbstractSlider类提供一个区间内的整数,有一滑块调节。子类:QScrollBar滚动条、QSlider音量控制或多媒体播放进度等滑块,QDial刻度表盘。