QT入门--QMainWindow

news2025/3/31 22:49:58

从上向下依次是菜单栏,工具栏,铆接部件(浮动窗口),状态栏,中心部件 

菜单栏

创建菜单栏

QMenuBar* mybar1 = menuBar();


将菜单栏放到窗口中

setMenuBar(mybar1);


创建菜单

QMenu *myfilemenu = mybar1->addMenu("文件");


创建菜单项

myfilemenu->addAction("新建");
myfilemenu->addAction("打开");

添加分割符

 myfilemenu->addSeparator();

note:菜单栏最多只有一个

工具栏

note:工具栏可以有多个

//创建工具栏
QToolBar* mytool1 = new QToolBar(this);
addToolBar(Qt::LeftToolBarArea,mytool1);
//只允许左右停靠
mytool1->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);
//禁止浮动
mytool1->setFloatable(false);
//工具栏中设置的内容
mytool1->addAction(openAction);
mytool1->addAction(newAction);

状态栏

   //创建状态栏:最多只有一个
   QStatusBar* myState = statusBar();
   setStatusBar(myState);
   QLabel* mylabel1 = new QLabel("提示信息", this);
   myState->addWidget(mylabel1);
   QLabel* myLabel2 = new QLabel("右侧提示信息", this);
   myState->addPermanentWidget(myLabel2);

铆接部件和中心部件

    //铆接部件:多个
    QDockWidget* myDock = new QDockWidget("浮动",this);
    addDockWidget(Qt::BottomDockWidgetArea, myDock);

    //设置中心部件:一个
    QTextEdit* myEdit = new QTextEdit(this);
    setCentralWidget(myEdit);

资源文件添加

ui->actionnew->setIcon(QIcon("路径"));

添加资源文件步骤

添加资源文件

open in Editor

随后添加前缀和添加文件即可

模态和非模态对话框创建

头文件

#include "QDialog"

connect(ui->actionnew,&QAction::triggered,this,[=](){
        //对话框
        //模态对话框:不可以对其他窗口进行操作
        QDialog mylog(this);
        mylog.resize(200,100);
        mylog.exec();
    });
connect(ui->actionnew,&QAction::triggered,this,[=](){
        //对话框
        //非模态对话框:可以对其他窗口进行操作
        QDialog *mylog = new QDialog(this);
        mylog->resize(200,100);
        mylog->show();
        //当关闭时候释放内存
        mylog->setAttribute(Qt::WA_DeleteOnClose);
    });

消息对话框

头文件

#include"QMessageBox"

connect(ui->actionnew,&QAction::triggered,this,[=](){
        //消息对话框
        QMessageBox::critical(parent,"critial","错误");
    });
connect(ui->actionnew,&QAction::triggered,this,[=](){
        //消息对话框
        QMessageBox::information(parent,"info","提问");
    });

参数1:父亲 参数2:标题 参数三:提示内容 参数4:按钮类型

其他标准对话框

例子:使用颜色对话框

//颜色
    connect(ui->actionnew,&QAction::triggered,this,[=](){
        //消息对话框
        QColor color = QColorDialog::getColor(QColor(255,0,0));
    });

文件对话框 

//文件
    connect(ui->actionnew,&QAction::triggered,this,[=](){
        //消息对话框:返回值为路径
        QFileDialog::getOpenFileName(this,"打开文件",".\\","(*.docx)");
    });

登录窗口布局

在ui设计窗口进行设计

label:标签

text edit 输入框

push button 点击按钮

拖动widget进行布局

spacers是两个弹簧

间隙

最大大小

密码模式

UI控件

按钮控件

QListWidget控件

 

 其他控件

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深圳南柯电子|医疗设备EMC测试整改检测:零到一,保障医疗安全

在当今医疗科技飞速发展的时代,医疗设备的电磁兼容性(EMC)已成为确保其安全、有效运行的关键要素之一。EMC测试整改检测不仅关乎设备的性能稳定性,更是保障患者安全、避免电磁干扰引发医疗事故的重要措施。 一、医疗设备EMC测试整…

【链 表】

【链表】 一级目录1. 基本概念2. 算法分析2.1 时间复杂度2.2 空间复杂度2.3 时空复杂度互换 线性表的概念线性表的举例顺序表的基本概念顺序表的基本操作1. 初始化2. 插入操作3. 删除操作4. 查找操作5. 遍历操作 顺序表的优缺点总结优点缺点 树形结构图形结构单链表基本概念链表…

一周学会Flask3 Python Web开发-Jinja2模板过滤器使用

锋哥原创的Flask3 Python Web开发 Flask3视频教程: 2025版 Flask3 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 在Jinja2中,过滤器(filter)是一些可以用来修改和过滤变量值的特殊函数,过滤器和变量用一个竖线 | &a…

【STM32H743IIT6】STM32H7的ADC时钟频率设置问题 —— 网上大多文章未注意到的要点!

前言 我使用的是定时器触发ADC采样。最近在想达到ADC的最高采样率的时候,发现一直却卡在1Msps上不去,直到在硬汉嵌入式的论坛里才发现了答案:[ADC] STM32H743/H750的Y版和V版芯片ADC的主频区别 这篇文章就详细的讲一下这个问题,这…

JavaScript基础(函数及面向对象)

函数 定义函数 Java定义方法: public 返回值类型 方法名(){ return 返回值 } 定义函数方法一 eg:定义一个绝对值函数 function abs(x) {if (x>0){return x;}else {return -x;}} 调用函数: 注意:一旦执行到return代表函数…

2025面试Go真题第一场

前几天参加了一场面试,GoLang 后端工程师,他们直接给了我 10 道题,我留了一个截图。 在看答案之前,你可以先简单做一下,下面我会对每个题目做一个说明。 文章目录 1、golang map 是否并发安全?2、协程泄漏的原因可能是…

【有奖实践】轻量消息队列(原 MNS)订阅 OSS 事件实时处理文件变动

当你需要对对象存储 OSS(Object Storage Service)中的文件变动进行实时处理、同步、监听、业务触发、日志记录等操作时, 你可以通过设置 OSS 的事件通知规则,自定义关注的文件,并将 OSS 事件推送到轻量消息队列&#x…

关于Postman自动获取token

在使用postman测试联调接口时,可能每个接口都需要使用此接口生成的令牌做Authorization的Bearer Token验证,最直接的办法可能会是一步一步的点击,如下图: 在Authorization中去选择Bearer Token,然后将获取到的token粘贴…

Baklib知识中台构建企业智慧中枢

智能技术架构构建路径 Baklib知识中台的技术架构设计以模块化和可扩展性为核心,通过分层解耦的架构体系实现知识管理的全流程覆盖。底层依托智能语义分析引擎与多模态知识图谱,完成非结构化数据的自动清洗与语义关联;中间层构建统一的知识资…

解决安卓recyclerView滚到底部不彻底问题

问题分析: 传统recycleview滚到到底部方式scrollToPosition(lastpositon),只能定位到最后一条数据的顶部。由于数据过长,无法滚动到最底部。 问了下deepseek,给了个方案: private void recyclerViewScrollToBottom()…

StepAudio:语音大模型

Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤),方言&#xff…

Kafka可视化工具EFAK(Kafka-eagle)安装部署

Kafka Eagle是什么? Kafka Eagle是一款用于监控和管理Apache Kafka的开源系统,它提供了完善的管理页面,例如Broker详情、性能指标趋势、Topic集合、消费者信息等。 源代码地址:https://github.com/smartloli/kafka-eagle 前置条件…

[Web 安全] PHP 反序列化漏洞 —— PHP 反序列化漏洞演示案例

关注这个专栏的其他相关笔记:[Web 安全] 反序列化漏洞 - 学习笔记-CSDN博客 PHP 反序列化漏洞产生原因 PHP 反序列化漏洞产生的原因就是因为在反序列化过程中,unserialize() 接收的值可控。 0x01:环境搭建 这里笔者是使用 PhpStudy 搭建的环…

2.部署kafka:9092

官方文档:http://kafka.apache.org/documentation.html (虽然kafka中集成了zookeeper,但还是建议使用独立的zk集群) Kafka3台集群搭建环境: 操作系统: centos7 防火墙:全关 3台zookeeper集群内的机器,1台logstash 软件版本: …

springboot博客系统详解与实现(后端实现)

目录 前言: 项目介绍 一、项目的准备工作 1.1 数据准备 1.2 项目创建 1.3 前端页面的准备 1.4 配置配置文件 二、公共模块 2.1 根据需求完成公共层代码的编写 2.1.1 定义业务状态枚举 2.1.2 统一返回结果 2.1.3 定义项目异常 2.1.4 统一异常处理 三、业…

seacmsv9注入管理员账号密码+orderby+limit

一、网上收集: 海洋影视管理系统(seacms,海洋cms)是一套专为不同需求的站长而设计的视频点播系统,采 用的是 php5.Xmysql 的架构,seacmsv9漏洞文件:./comment/api/index.php,漏洞参数…

企业级大模型应用的Java-Python异构融合架构实践

一、后端语言相关技术生态 Python语言 Python在AI计算领域拥有全面的生态支持: 底层工具库: Pandas、NumPy、SciPy、Matplotlib深度学习框架: PyTorch、TensorFlow领域专用框架: HuggingFace Transformers(社区生态为主) 常见Python框架 …

C#连接sql server

连接时,出现如下提示: ERROR [IM014] [Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配 原因是odbc的驱动和应用程序的架构不一致。我的odbc如下所示: 显示为64位,而c#程序显…

粉色和紫色渐变壁纸怎么设计?

粉色和紫色的渐变壁纸设计可以打造极为浪漫的氛围,这两种颜色的搭配极具梦幻感与浪漫气息,常被用于各种浪漫主题的设计之中。以下是关于粉色和紫色渐变壁纸的设计方法: 一、渐变方向设计 横向渐变:从画面左侧的粉色过渡到右侧的紫…

AOP基础-01.快速入门

一.AOP 对于统计每一个业务方法的耗时这一操作,如果再业务层的每一个方法前获取方法运行的开始时间,方法结束获取结束时间,然后计算执行耗时,那这样就太繁琐了。能不能定义一个模板方法,使得该方法能够在业务层的方法执…