Qt窗口部件


2013-01-09 22:34:18|  分类: Qt |  标签:qt  |举报|字号 订阅

常用的一般有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

窗口的几何布局:

Qt之二(窗口部件) - wen.shuijie - wen.shuijie的博客
包含框架:x()、y()、frameGeometry()、pos()、move()等
不包含框架:geometry()、width()、height()、rect()和size()等函数
rect()返回的是窗口内部矩形、在窗口内部左上角为(0,0),整个frame移动了,也是(0,0)
 

对话框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刻度表盘。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值