Qt之QMainWidget相关

devtools/2024/11/27 4:32:50/

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.ppmy.cn/devtools/137307.html

相关文章

贪心算法-区间问题 C++

题目一 解题思路 原题解&#xff1a;https://www.acwing.com/solution/content/79913/ 代码实现 #include<iostream> #include<algorithm>using namespace std;const int N 1e5 10;struct Range {int l, r;bool operator < (const Range &w) const {re…

智能文档处理百宝箱,文档处理的必备利器

1、引言 文档解析是开发者在业务实践中会频繁面临的场景&#xff0c;不管是用AI辅助日常工作&#xff0c;还是从事产品研发&#xff0c;从非结构化文本中提取文字、图片等信息具有很大的挑战。 目前市面上的文档解析工具普遍存在繁杂无序&#xff0c;缺乏统一评估标准&#xff…

win10中使用ffmpeg和MediaMTX 推流rtsp视频

在win10上测试下ffmpeg推流rtsp视频&#xff0c;需要同时用到流媒体服务器MediaMTX 。ffmpeg推流到流媒体服务器MediaMTX &#xff0c;其他客户端从流媒体服务器拉流。 步骤如下&#xff1a; 1 下载MediaMTX github: Release v1.9.3 bluenviron/mediamtx GitHub​​​​​…

[极客大挑战 2019]BabySQL--详细解析

信息搜集 进入界面&#xff1a; 输入用户名为admin&#xff0c;密码随便输一个&#xff1a; 发现是GET传参&#xff0c;有username和password两个传参点。 我们测试一下password点位能不能注入&#xff1a; 单引号闭合报错&#xff0c;根据报错信息&#xff0c;我们可以判断…

uniapp+vue2重新进入小程序就清除缓存,设备需要重新扫码

代码 app.vue页面 <script>export default {onLaunch: function() {uni.removeStorageSync(equiId)}} </script>

Spring Boot 的 WebClient 实践教程

什么是 WebClient&#xff1f; 在 Spring Boot 中&#xff0c;WebClient 是 Spring WebFlux 提供的一个非阻塞、响应式的 HTTP 客户端&#xff0c;用于与 RESTful 服务或其他 HTTP 服务交互。相比于传统的 RestTemplate&#xff0c;WebClient 更加现代化&#xff0c;具有异步和…

已解决WordPress图片无法显示,免插件实现WordPress上传图片时自动重命名

在我们使用 WordPress 发布文章时&#xff0c;经常都需要添加图片、多媒体什么的。然而&#xff0c;大家都知道 WordPress 是舶来物&#xff0c;对于中文用户来说&#xff0c;我们都会把图片命名为中文的&#xff0c;由于 WordPress 机制的原因&#xff0c;并不能正常的显示图片…

[自动化]获取每次翻页后的页面 URL

from DrissionPage import ChromiumPage page ChromiumPage() page.get(热门项目 - Gitee.com) page.listen.start(gitee.com/explore) for i in range(5): page("relnext").click() res page.listen.wait() print(res.url) 这段代码使用了DrissionPage库中的Chromi…