当前位置: 首页 > article >正文

Qt之QMainWidget相关

QMainWindow

继承于QWidget的子类

自带一个菜单栏,一个工具栏,可以设置状态栏与铆钉部件

菜单栏:QMenuBar

注意:一个窗口最多一个菜单栏


API:

       创建

                QMenuBar(parent)

       获取QMainWindow自带的菜单栏

                QMenuBar* menuBar()

       添加菜单:QMenu

                addMenu(QMenu *menu);

        菜单添加活动:QAction

                addAction(QAction* action);

        菜单添加分割线

                addSeparator()

        菜单添加菜单

                addMenu(QMenu * menu);

        活动设置快捷键

                void setShortcut(const QKeySequence &shortcut)

                如:

                        action.setShortcut(tr("键1+键2"))

        添加菜单栏

                 void setMenuBar(QMenuBar *menuBar) 

工具栏:QToolBar

一个窗口可以有多个

QWidget无法设置工具栏

API

        创建

                QToolBar(parent)

        添加

                void addToolBar(QToolBar * toolbar);//默认位置在顶部

                void addToolBar(Qt::ToolBarArea area,QToolBar *toolbar);

        添加活动

                addAction(QAction * action)

        添加分割线

                addSeparator()

        设置可停靠位置

                void setAllowedAreas(Qt::ToolBarAreas areas)

        设置是否可以拖动
                void setMovable(bool movable)                                

状态栏:QStatusBar

注意:一个窗口一个

API:

        创建

                QStatusBar(parent)

        获取QMainWidow 自带的状态栏
                QStatusBar *statusBar() const
        添加活动
                addAction()
        添加Widget
                addWidget()
                void addPermanentWidget(QWidget *widget, int stretch = 0)

铆钉部件:QDockWidget

注意:

        可以有多个

        又名浮动窗口
API:
         创建
                QDockWidget
        添加
                void addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget)
        设置内容
                void setWidget(QWidget *widget)

 中心控键

        

对话框

QMessageBox:消息对话框

void about(QWidget *parent, const QString &title, const QString &text)
void warning(QWidget *parent, const QString &title, const QString
&text, StandardButtons buttons = Ok, StandardButton defaultButton =
NoButton)
StandardButton critical(QWidget *parent, const QString &title, const
QString &text, StandardButtons buttons = Ok, StandardButton
defaultButton = NoButton)
StandardButton information(QWidget *parent, const QString &title,
const QString &text, StandardButtons buttons = Ok, StandardButton
defaultButton = NoButton)
StandardButton question(QWidget *parent, const QString &title, const
QString &text, StandardButtons buttons = StandardButtons( Yes | No ),
StandardButton defaultButton = NoButton)

QFileDialog

QString getOpenFileName(QWidget *parent = Q_NULLPTR, const QString
&caption = QString(), const QString &dir = QString(), const QString
&filter = QString(), QString *selectedFilter = Q_NULLPTR, Options
options = Options())

QColorDialog

QColor getColor(const QColor &initial = Qt::white, QWidget *parent =
Q_NULLPTR, const QString &title = QString(), ColorDialogOptions
options = ColorDialogOptions())

QFontDialog

QFont getFont(bool *ok, const QFont &initial, QWidget *parent =
Q_NULLPTR, const QString &title = QString(), FontDialogOptions options
= FontDialogOptions())

常用组件

QLable

展示文本 , 展示图片 , 展示视频

API
         setText
        text
        setPixmap
        setMovie

 QLineEdie

作用:

        单行输入框,可作为搜索框,账号,密码输入框等

API
         setText
        text
        setEchoMode
信号
        void textChanged(const QString &text)

 QRadioButton

作用:

        单选按钮

信号:

        void clicked(bool checked = false);

QCheckBox

作用:

       多选按钮

信号:

        void stateChanged(int state)

布局

原则:

        从外向内

        从上向下

        从左向右

布局使用:

        QWidget+弹簧

定时器

作用:

        间隔延迟执行

分类:

        1,定时器函数

        2,定时器对象

定时器函数

概念 : QObject 提供的一个虚函数
函数 :
        protected virtual void timerEvent(QTimerEvent *event)
使用 :
        在使用的窗口中重写timerEvent 函数
        启动定时器
                int startTimer(int interval, Qt::TimerType timerType = Qt::CoarseTimer)
        参数1:
                间隔时间,单位毫秒
        返回值:
                开启的定时器id
相关函数 : 关闭定时器
        void killTimer(int id);
        参数:
                要关闭的定时器id

定时器对象

概念 : QT 提供的一个类 QTimer
相关函数 :
        创建
                QTimer(QObject *parent = Q_NULLPTR);
        启动
                void start(int msec);
                        参数:延迟时间
                void start();
        停止
                void stop();
        信号
                void timeout(QPrivateSignal);
使用 :
        1,创建定时器对象
        2,绑定信号与槽
        3,启动定时器
        4,停止定时器

高级控件

QListWidget
QTableWidget
QTreeWidget
QToolBox
QTabWidget

就不一一赘述了,可以在Qt中多多尝试就会有所熟悉

自定义控件

步骤:

        1,创建

        2,编写

        3,使用

事件

1, 事件过滤器
        virtual bool eventFilter
注意 : 需安装
        this->installEventFilter(this);
2, 事件分发器
        virtual bool event
3, 事件
        virtual void mouseMoveEvent(QMouseEvent* event); //鼠标拖拽移动
        virtual void mousePressEvent(QMouseEvent* event); //鼠标按钮按下
        virtual void mouseReleaseEvent(QMouseEvent* event); //鼠标按钮抬起
        ...

http://www.kler.cn/a/410846.html

相关文章:

  • 【C++ 算法进阶】算法提升二十三
  • 分布式kettle调度平台v6.4.0新功能介绍
  • Python 爬虫从入门到(不)入狱学习笔记
  • 【深度学习】【RKNN】【C++】模型转化、环境搭建以及模型部署的详细教程
  • ES 基本使用与二次封装
  • C#构建一个简单的前馈神经网络
  • nohup java -jar supporterSys.jar --spring.profiles.active=prod
  • 5.算法移植第六篇YOLOV5 /onnx模型转换成rknn
  • Oracle 深入学习 Part 8: Managing Tablespaces and Data Files(管理表空间和数据文件)
  • Linux中的权限管理
  • 数据结构 ——— 快速排序算法的实现(hoare版本)
  • 贵州茅台[600519]行情数据接口
  • FFmpegFrameRecorder 切分视频文件时结束条件设置不当导致切分后的文件过短问题
  • 深度解析 Docker:重塑软件部署格局
  • Element UI 打包探索【1】
  • bridge-multicast-igmpsnooping
  • 第二十八章 TCP 客户端 服务器通信 - JOB命令示例
  • Python和R荧光分光光度法
  • 基于YOLOv8深度学习的农作物番茄成熟度检测系统研究与实现(PyQt5界面+数据集+训练代码)
  • jmeter基础06_(练习)常见的http请求
  • Reactor 模式的理论与实践
  • 即时通讯平台-音视频即时通讯平台就选WorkPlus
  • 虚拟苹果系统MacOS中新建自定义C++Dylib并用C++测试程序测试
  • QT 跨平台实现 SSDP通信 支持多网卡
  • 【ArcGISPro】使用AI提取要素-土地分类(sentinel2)
  • 用树莓派Pico控制8×8 LED点阵屏:深入解析C++核心知识与动态显示实现