Qt中的三种基类

一.QMainWindow:
QMainWindow类提供一个带有菜单条,工具条和一个状态条的主应用程序窗口。主窗口通常提供一个大的中央窗口部件,以及周围菜单,工具条,和一个状态栏。QMainWindow窗口经常被继承,使得封装中央部件,菜单,工具条,状态栏等都变得很容易,当用户点击它的时候,相应的槽就会被调用。




二.QWidget
QWidet类是所有用户界面对象的基类,窗口部件是用户界面的一个基本单元,它从窗口系统接收鼠标,键盘和其他消息,并在屏幕上绘制自己。一个窗口部件可以被他的父窗口或者是其他窗口挡住一部分。


三.QDialog
QDialog类是对话框窗口的基类,对话框窗口主要用于短期任务和用户进行短期通讯的顶级窗口,QDialog可以是模态对话框或者是非模态对话框。QDialog支持扩展并带有返回值,他们可以带有默认值
*************************************************************************************


1.Qt Creator提供的默认基类有QMainWindow、QWidget、QDialog这3种。
   QMainWindow是带有菜单栏和工具栏的主窗口,
   QDialog是各种对话框的基类,而这两者都是继承自QWidget。
   QWidget的(新建Qt GUI应用时选择QWidget为基类)。不仅如此,其实所有的窗口部件都继承     自QWidget。


2.QWidget的构造函数有两个参数:“QWidget * parent = 0”和“Qt::WindowFlags f = 0”。
  面一个参数是指父窗口部件,默认值为0,表明没有父窗口;
  后面一个参数是Qt::WindowFlags的枚举类型,分为窗口类型(窗口的样式)和窗口标志(更改      窗口的标题栏和边框),可以进行位或操作。


3.ui是一个指向界面类的指针,使用“ui->”就是用来访问这个界面类里面的控件。


4.Qt提供的一些常用的对话框类型:
     QColorDialog(颜色对话框)、
     QFileDialog(文件对话框)、
     QFontDialog(字体对话框)、
     QInputDialog(输入对话框)、
     QMessageBox(消息对话框)、
     QProgressDialog(进度对话框)、
     QErrorMessage(错误信息对话框)
     QPageSetupDialog(页面设置对话框)、
     QPrintDialog(打印对话框)、
     QPrintPreviewDialog(打印预览对话框)。


5..其他窗口部件
(1)QFrame类(带边框的部件的基类),其子类有
           QLabel(标签部件,显示文本或者图片)、QLCDNumber(液晶数字显示效果)、           QStackedWidget(提供了一个部件栈,可以切换多个界面)、
           QToolBox(列层叠窗口,在一个界面上达到类似抽屉的效果,可以切换页面)。
(2)按钮部件,QAbstractButton类是按钮部件的抽象基类,其子类有
           QCheckBox(复选框,可以同时选择多项)、
           QPushButton(标准按钮)、
           QRadioButton(单选框按钮)、
           QToolButton(工具按钮)。
(3)QLineEdit(行编辑器),可以实现设置显示模式、输入掩码、输入验证、自动补全的功能。
(4)QAbstractSpinBox(数值设定框)是一个抽象基类,其子类有
           QDataTimeEdit(设定日期时间)、
           QSpinBox(设定整数)、
           QDoubleSpinBox(设定浮点数)。
(5)QAbstractSlider(滑块部件),其子类有
           QScrollBar(多用在QScrollArea类中实现滚动区域)、
           QSlider(多用在音量控制或多媒体播放进度等方面)、
           QDial(刻度表盘)。

  • 21
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt,可以使用基类来管理文件类型解析。具体来说,可以创建一个基类,定义文件类型解析的接口和数据结构,然后创建子类来实现具体的文件类型解析。 以下是一个简单的示例: ``` class FileParser { public: virtual bool parseFile(const QString& fileName) = 0; virtual QString getType() const = 0; }; class TextFileParser : public FileParser { public: bool parseFile(const QString& fileName) override { // 实现文本文件解析逻辑 return true; } QString getType() const override { return "Text"; } }; class ImageFileParser : public FileParser { public: bool parseFile(const QString& fileName) override { // 实现图像文件解析逻辑 return true; } QString getType() const override { return "Image"; } }; ``` 在上述示例,我们定义了一个FileParser基类,包含了解析文件和获取文件类型的接口。然后,我们创建了两个子类TextFileParser和ImageFileParser,分别实现了文本文件和图像文件的解析逻辑,并返回了对应的文件类型。 使用时,我们可以根据文件类型创建相应的子类实例,然后调用parseFile方法进行文件解析: ``` QString fileName = "example.txt"; FileParser* parser = new TextFileParser(); if (parser->parseFile(fileName)) { qDebug() << "File parsed successfully"; } delete parser; ``` 在上述示例,我们创建了一个TextFileParser实例来解析文本文件,调用parseFile方法进行解析。当解析成功时,输出调试信息。解析完成后,我们需要手动释放parser对象。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值