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); //鼠标按钮抬起
        ...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/921165.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【深度学习之一】2024最新pytorch+cuda+cudnn下载安装搭建开发环境

兵马未动,粮草先行。作为深度学习的初学者,快速搭建一个属于自己的开发环境就是头等大事,可以让我们节省许多的时间。这一期我们主要讲一讲2024年最新pytorchcudacudnn下载安装搭建开发环境,以及安装过程中可能遇到的一些问题以及…

SQL 复杂查询

目录 复杂查询 一、目的和要求 二、实验内容 (1)查询出所有水果产品的类别及详情。 查询出编号为“00000001”的消费者用户的姓名及其所下订单。(分别采用子查询和连接方式实现) 查询出每个订单的消费者姓名及联系方式。 在…

如何在 UniApp 中实现 iOS 版本更新检测

随着移动应用的不断发展,保持应用程序的更新是必不可少的,这样用户才能获得更好的体验。本文将帮助你在 UniApp 中实现 iOS 版的版本更新检测和提示,适合刚入行的小白。我们将分步骤进行说明,每一步所需的代码及其解释都会一一列出…

ssm面向品牌会员的在线商城小程序

摘要 随着Internet的发展,人们的日常生活已经离不开网络。未来人们的生活与工作将变得越来越数字化,网络化和电子化。它将是直接管理面向品牌会员的在线商城小程序的最新形式。本小程序是以面向品牌会员的在线商城管理为目标,使用 java技术制…

《OpenCV 图像缩放、翻转与变换全攻略:从基础操作到高级应用实战》

简介:本文详细阐述了 OpenCV 在图像操作中的关键技术,包括缩放(确定尺寸缩放与按比例缩放)、翻转(沿不同轴的翻转方式)以及变换(平移、旋转、三点确定变换和四点确定变换即透视变换)…

sql注入报错分享(mssql+mysql)

mysql mysql的报错内容比较多 网上也有比较多的 这里重复的就不多介绍了。一笔带过 溢出类 bigint 当超过mysql的整形的时候,就会导致溢出,mysql可能会将错误信息带出。这里user()是字母默认为0 取反以后1可能就会导致异常。 报错特征 BIGINT UNSIG…

FastAPI重载不生效?解决PyCharm中Uvicorn无法重载/重载缓慢的终极方法!

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 重载缓慢 📒📝 问题概述🚨 相关原因📝 解决方案一📝 解决方案二📝 解决方案三📝 解决方案四⚓️ 相关链接 ⚓️📖 介绍 📖 在使用FastAPI开发时,reload=True 本应让你在修改代码后自动重启服务,提升开发效率…

AI智能稿件排版系统订单管理系统

在现代制造业和服务行业中,高效的生产流程和精确的订单管理是企业保持竞争优势的核心要素。AI智能稿件排版系统和订单管理系统作为一体化解决方案,以其强大的自动化能力和智能化技术,帮助企业实现排版效率提升、数据格式兼容性增强和生产流程…

jetson orin系列开发版安装cuda的gpu版本的opencv

opencv安装包下载地址: https://github.com/opencv/opencv/扩展库下载地址: https://github.com/opencv/opencv_contrib1. 删除jetpack包中的opencv版本 原先的opencv库安装在目录/usr/lib/aarch64-linux-gnu/下(一般其他的第三方库也都安…

24小时自动监控,自动录制直播蓝光视频!支持抖音等热门直播软件

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 工具特点📒📝 使用🎈 获取方式 🎈⚓️ 相关链接 ⚓️📖 介绍 📖 对于许多直播爱好者和内容创作者而言,错过心爱的直播或难以搜集视频素材始终是一个难题。今天,给大家分享的这款工具可以轻松解决这个问题,它拥有…

dockerfile构建Nginx镜像练习二(5-2)

环境准备: (1)保证拥有centos基础镜像 docker images | grep centos (2)服务器保证可以连接外网 1.创建工作目录 mkdir nginx cd nginx 2.在工作目录中创建并编写Dockerfile文件 vim dockerfile #定义基础镜像 FROM centos:7#维护者信息(可缺省) MAINTAINER d…

Etcd 框架

基本了解 客户端、长连接与租约的关系 客户端对象 etcd的客户端对象是用户与etcd服务进行交互的主要接口,主要功能就是存储、通知和事务等功能访问 键值存储:客户端通过put 和 get操作存储数据;数据存储在etcd的层级化键值数据库中监听器&a…

滑动窗口篇——如行云流水般的高效解法与智能之道(1)

前言: 上篇我们介绍了双指针算法,并结合具体题目进行了详细的运用讲解。本篇我们将会了解滑动窗口。滑动窗口是一种常用的算法技巧,主要用于处理子数组、子串等具有“窗口”特性的题目。柳暗花明,乃巧解复杂问题的高效之道。 一. …

数据结构-树状数组专题(2)

一、前言 接上回树状数组专题&#xff08;1&#xff09;&#xff0c;这次主要介绍差分跟树状数组联动实现区间更新 二、我的模板 重新放了一遍&#xff0c;还是提一嘴&#xff0c;注意下标从0开始&#xff0c;区间左闭右开 template <typename T> struct Fenwick {in…

QA|使用 MapleSim 模拟卷料生产 (Converting)和卷对卷系统 (R2R)

使用 MapleSim 模拟卷料生产 (Converting)和卷对卷系统 (R2R) 纸张、薄膜、塑料、金属箔、新能源电池和卷料生产设备 (converting equipment) 的制造商正在转向建模和仿真&#xff0c;以提升卷料处理的设备性能和产品质量。MapleSim 卷料处理库提供了专业的建模元件以及功能&a…

2024ARM网络验证 支持一键云注入引流弹窗注册机 一键脱壳APP加固搭建程序源码及教程

此套源码功能强大&#xff0c;支持APK脱壳、注入、网络验证、注册机、引流弹窗、更新弹窗和公告等功能&#xff0c;并具有强大的系统应用管理端&#xff0c;可轻松管理用户数量和卡密状态等数据统计。armpro脱壳软件可在线修改手机文件和游戏数据&#xff0c;并可添加会员功能、…

汉诺塔(hanio)--C语言函数递归

文章目录 前言一、汉诺塔的图解二、问题分析总结 前言 什么是汉诺塔&#xff1f; 汉诺塔(Tower of Hanoi)&#xff08;也称河内塔&#xff09;是有法国数学家爱德华卢卡斯于1883年发明的一道智力题。它源于印度的一个古老传说&#xff1a;大梵天创造世界的时候做了三根钻石柱子…

【MySQL】数据库精细化讲解:内置函数知识穿透与深度学习解析

前言&#xff1a;本节内容讲述mysql里面的函数的概念&#xff0c; 在mysql当中&#xff0c; 内置了很多函数工作。 这些函数丰富了我们的操作。 比如字符串函数、数据函数以及一些其他函数等等。 ps:友友们学习了表的基本操作后就可以观看本节内容啦! 目录 日期函数 current_…

Is:cannat access /data: Input/output error

说明&#xff1a; 1&#xff09;访问应用业务&#xff0c;输入账号密码报如下图所示&#xff1a;invalid login. 2&#xff09;登录服务器查看数据日志&#xff0c;报如下图所示&#xff1a;ls:cannot access /data: Input/output error 3&#xff09;查看日志dmesg |grep erro…

Python MySQL SQLServer操作

Python MySQL SQLServer操作 Python 可以通过 pymysql 连接 MySQL&#xff0c;通过 pymssql 连接 SQL Server。以下是基础操作和代码实战示例&#xff1a; 一、操作 MySQL&#xff1a;使用 pymysql python 操作数据库流程 1. 安装库 pip install pymysql2. 连接 MySQL 示例 …