2023-12-05 Qt学习总结3_Qt的基石QObject_QWidget_QMainWindow


点击 <C 语言编程核心突破> 快速C语言入门



前言

要解决问题: 学习qt最核心知识, 多一个都不学.


九 QObject基类

QObject是Qt中最基本的类,所有Qt中的对象都从该基类派生而来。

QObject提供了信号槽机制和属性系统,使得Qt应用程序可以实现高效的事件处理和内置的类型转换。

QObject是一个C++类,同时也是Qt元对象系统的重要概念。

QObject还可以自定义事件和事件过滤器,使得开发者可以轻松地编写和组织复杂的应用程序。

使用QObject作为基类,可以使得派生类成为一个Qt对象,从而能够利用Qt的信号槽机制、事件处理机制和属性系统,为应用程序提供更灵活、更可靠的架构支持。

以下是QObject的常用函数:

  1. QObject::QObject(QObject *parent = nullptr) 构造函数,创建一个QObject对象。

  2. QObject::~QObject() 析构函数,销毁QObject对象。

  3. void QObject::setObjectName(const QString &name) 设置对象的名称。

  4. QString QObject::objectName() const 返回对象的名称。

  5. void QObject::setProperty(const char *name, const QVariant &value) 设置对象的属性。

  6. QVariant QObject::property(const char *name) const 返回对象的属性。

  7. bool QObject::connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type = Qt::AutoConnection) 连接一个信号与槽函数。

  8. bool QObject::disconnect(const QObject *sender, const char *signal, const QObject *receiver, const char *method) 断开一个信号与槽的连接。

  9. void QObject::deleteLater() 在事件循环中删除对象。

  10. QObjectList QObject::children() const 返回子对象的列表。

  11. bool QObject::event(QEvent *event) 处理事件。

  12. bool QObject::eventFilter(QObject *watched, QEvent *event) 过滤事件。

  13. QThread *QObject::thread() const 返回对象所属的线程。

  14. bool QObject::blockSignals(bool block) 阻止或取消阻止这个对象的所有信号。

  15. bool QObject::signalsBlocked() const 返回是否阻止了这个对象的所有信号。

  16. void QObject::dumpObjectInfo() 输出对象信息。

  17. void QObject::dumpObjectTree() 输出对象树形结构。

十 QWidget基类

QWidget是Qt中所有用户界面类的基类,它提供了一个空白的窗口部件,可以作为其他窗口部件的父类。

QWidget提供了很多基本的函数和信号,包括绘制、布局、尺寸调整、事件处理等。

QWidget还支持嵌套,可以将多个QWidget嵌套在一起形成复杂的界面。

除了QWidget,Qt还提供了一些其他的窗口部件类,例如QMainWindowQDialog等。

这些窗口部件类都是从QWidget派生而来,因此它们都可以使用QWidget提供的函数和信号。

但是这些窗口部件类还提供了一些特殊的功能,例如菜单栏、工具栏、状态栏等,可以方便开发者快速构建各种类型的用户界面。

下面是QWidget基类常用的函数:

  1. QWidget():构造函数,创建一个基本的QWidget对象;

  2. virtual ~QWidget():虚析构函数,释放QWidget对象;

  3. void setWindowTitle(const QString& title):设置窗口标题;

  4. void setWindowIcon(const QIcon& icon):设置窗口图标;

  5. void resize(int w, int h):设置窗口大小;

  6. void setFixedSize(int w, int h):设置窗口固定大小;

  7. void move(int x, int y):移动窗口到给定的位置;

  8. void show():显示窗口;

  9. void hide():隐藏窗口;

  10. void close():关闭窗口;

  11. void setCursor(const QCursor& cursor):设置光标;

  12. QWidget* parentWidget() const:返回父窗口;

  13. void setLayout(QLayout *layout):设置布局管理器;

  14. QLayout* layout() const:返回当前布局管理器;

  15. void setStyleSheet(const QString& styleSheet):设置样式表;

  16. void setWindowFlags(Qt::WindowFlags type):设置窗口标识。

十一 QMainWindow类

QMainWindow是Qt应用程序中最常用的窗口类型之一。

它提供了一个完整的应用程序主窗口的基础, 可以包含菜单栏、工具栏、状态栏和中央窗口部件等。

QMainWindow类继承自QWidget类, 它提供了许多方法和信号来简化应用程序的开发和管理。

可以使用它的方法来管理菜单栏、工具栏和状态栏的内容,以及中央窗口部件的位置和大小等。

QMainWindow类常用函数:

  1. QMainWindow(QWidget * parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()) 构造函数。

  2. void setCentralWidget(QWidget * widget) 设置窗口的中间部件。

  3. QMenuBar* menuBar() const 返回窗口的菜单栏部件。

  4. QToolBar* addToolBar(const QString & title) 添加工具栏部件。

  5. QStatusBar *statusBar() const 返回窗口的状态栏部件。

  6. void setStatusBar(QStatusBar * statusbar) 设置窗口的状态栏部件。

  7. void addDockWidget(Qt::DockWidgetArea area, QDockWidget * dockwidget) 添加可停靠的窗口部件。

  8. QWidget* centralWidget() const 返回窗口的中间部件。

  9. QList<QDockWidget *> dockWidgets() 返回窗口中所有的可停靠的窗口部件。

  10. Qt::ToolBarArea toolBarArea(QToolBar * toolbar) const 返回工具栏部件的停靠区域。

  11. void removeDockWidget(QDockWidget * dockwidget) 删除可停靠的窗口部件。

  12. QWidget * takeCentralWidget() 取走窗口的中间部件并将其返回。

  13. void setCorner(Qt::Corner corner, Qt::DockWidgetArea area) 设置可停靠的窗口部件的角落。

  14. void setDockOptions(QMainWindow::DockOptions options) 设置可停靠的窗口部件的选项。


总结

九 QObject基类
十 QWidget基类
十一 QMainWindow类


点击 <C 语言编程核心突破> 快速C语言入门


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不停感叹的老林_<C 语言编程核心突破>

不打赏的人, 看完也学不会.

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值