QT5:在窗口右上角显示图标

目录

一、环境与目标

二、实现逻辑(纯代码)与效果

三、参考代码

四、总结


一、环境与目标

qt版本:5.12.7

windows 11 下的 Qt Designer (已搭建)

目标:使用嵌套布局的方式将两个按钮显示在窗口右上角,使两个按钮直接无间距且与窗口右边距为零。


二、实现逻辑(纯代码)与效果

1.创建新工程并在主窗口创建中心部件

2.在中心部件运用垂直布局

3.对两个按钮使用水平布局并通过拉伸项将按钮推到最右侧,同时设置按钮间距及布局边距。

4.将水平布局加入到垂直布局中并设置为右对齐

5.在垂直布局添加完水平布局后再添加拉伸项使按钮被置于顶部

6.模拟效果如下:


三、参考代码

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QDebug>
#include <QPushButton>
#include <QHBoxLayout>
#include <QVBoxLayout>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private:Ui::MainWindow *ui;QWidget *btn_ctl_Widget;QPushButton *set_btn;QPushButton *wifi_btn;QHBoxLayout *btn_hlayout; //水平布局QVBoxLayout *btn_vlayout; //垂直布局};
#endif // MAINWINDOW_H

mainwindow.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);// 设置窗口大小resize(800, 1280); // 宽度为800像素,高度为1280像素btn_ctl_Widget = new QWidget(this); // 创建中心部件this->setCentralWidget(btn_ctl_Widget); // 设置为中心部件// 创建垂直布局btn_vlayout = new QVBoxLayout(btn_ctl_Widget);//创建按钮,并设置按钮样式set_btn=new QPushButton("set");set_btn->setFixedSize(50, 50);wifi_btn=new QPushButton("wifi");wifi_btn->setFixedSize(50, 50);// 创建水平布局并将按钮添加到其中btn_hlayout = new QHBoxLayout();// 在按钮之前添加一个拉伸项,这样按钮就会被推到布局的右侧btn_hlayout->addStretch(1);btn_hlayout->addWidget(set_btn);btn_hlayout->addWidget(wifi_btn);// 设置水平布局内按钮之间的间距为0btn_hlayout->setSpacing(0);btn_hlayout->setContentsMargins(0, 0, 0, 0); // 设置布局边距为0// 在垂直布局的末尾添加拉伸因子,并将水平布局添加到垂直布局中btn_vlayout->addLayout(btn_hlayout,Qt::AlignRight); // 将水平布局设置为右对齐btn_vlayout->addStretch(1); // 添加拉伸因子,使按钮位于顶部}MainWindow::~MainWindow()
{delete ui;
}


四、总结

学习与使用qt的布局功能,在边学边用的过程中简单的做个记录,防止自己忘记。

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

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

相关文章

《大海》这歌为何经久不衰?你看歌词写的多美妙!

《大海》这歌为何经久不衰&#xff1f;你看歌词写的多美妙&#xff01; 《大海》是一首由陈大力作词&#xff0c;陈大力、陈秀男作曲&#xff0c;Ricky Ho编曲&#xff0c;张雨生演唱的国语流行歌曲。该曲收录在张雨生1992年11月30日由飞碟唱片发行的同名专辑《大海》中。 作为…

【JavaEE精炼宝库】多线程进阶(2)synchronized原理、JUC类——深度理解多线程编程

一、synchronized 原理 1.1 基本特点&#xff1a; 结合上面的锁策略&#xff0c;我们就可以总结出&#xff0c;synchronized 具有以下特性(只考虑 JDK 1.8)&#xff1a; 开始时是乐观锁&#xff0c;如果锁冲突频繁&#xff0c;就转换为悲观锁。 开始是轻量级锁实现&#xff…

广州外贸建站模板

Yamal外贸独立站wordpress主题 绿色的亚马尔Yamal外贸独立站wordpress模板&#xff0c;适用于外贸公司建独立站的wordpress主题。 https://www.jianzhanpress.com/?p7066 赛斯科Sesko-W外贸建站WP主题 适合机械设备生产厂家出海做外贸官网的wordpress主题&#xff0c;红橙色…

Dify自定义工具例子

1.天气&#xff08;JSON&#xff09; {"openapi": "3.1.0","info": {"title": "Get weather data","description": "Retrieves current weather data for a location.","version": "v1…

动态规划——打家劫舍(C++)

好像&#xff0c;自己读的书确实有点少了。 ——2024年7月2日 198. 打家劫舍 - 力扣&#xff08;LeetCode&#xff09; 题目描述 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连…

Linux 静态库和动态库

不管是Linux还是Windows中的库文件其本质和工作模式都是相同的, 只不过在不同的平台上库对应的文件格式和文件后缀不同。程序中调用的库有两种 静态库和动态库&#xff0c;不管是哪种库文件本质是还是源文件&#xff0c;只不过是二进制格式只有计算机能够识别&#xff0c;作为一…

【Node-RED 4.0.2】4.0版本新增特性(官方版)

二、重要功能 *1.时间戳格式改进 过去&#xff0c;node-red 只提供了 最原始的 timestamp 的格式&#xff08;1970-01-01 ~ now&#xff09; 但是现在&#xff0c;额外增加了 2 种格式&#xff1a; ISO 8601 -A COMMON FORMAT&#xff08;YYYY-MM-DDTHH:mm:ss:sssZ&#xff…

思考如何学习一门编程语言?

一、什么是编程语言 编程语言是一种用于编写计算机程序的人工语言。通过编程语言&#xff0c;程序员可以向计算机发出指令&#xff0c;控制计算机执行各种任务和操作。编程语言由一组语法规则和语义规则组成&#xff0c;这些规则定义了如何编写代码以及代码的含义。 编程语言…

linux和mysql基础指令

Linux中nano和vim读可以打开记事文件。 ifdown ens33 ifup ens33 关闭&#xff0c;开启网络 rm -r lesson1 gcc -o code1 code1.c 编译c语言代码 ./code1 执行c语言代码 rm -r dir 删除文件夹 mysql> show databases-> ^C mysql> show databases; -------…

常见网络端口号

在网络工程领域&#xff0c;了解和掌握默认端口号是至关重要的。端口号是计算机网络中最基本的概念之 一&#xff0c;用于标识特定的网络服务或应用程序。 1、什么是端口号&#xff1f; 端口号是计算机网络中的一种标识&#xff0c;用于区分不同的网络服务和应用程序。每个端…

【C++进阶学习】第五弹——二叉搜索树——二叉树进阶及set和map的铺垫

二叉树1&#xff1a;深入理解数据结构第一弹——二叉树&#xff08;1&#xff09;——堆-CSDN博客 二叉树2&#xff1a;深入理解数据结构第三弹——二叉树&#xff08;3&#xff09;——二叉树的基本结构与操作-CSDN博客 二叉树3&#xff1a;深入理解数据结构第三弹——二叉树…

想要打造超高性能的接口API?试试这12条小技巧。

1. 并行处理 简要说明 举个例子&#xff1a;在价格查询链路中&#xff0c;我们需要获取多种独立的价格配置项信息&#xff0c;如基础价、折扣价、商户活动价、平台活动价等等。 CompletableFuture 是银弹吗&#xff1f; 使用 CompletableFuture 的确能够帮助我们解决许多独…

走进IT的世界

引言 随着高考的结束&#xff0c;对于即将踏入IT&#xff08;信息技术&#xff09;领域的新生而言&#xff0c;这个假期不仅是放松身心的时间&#xff0c;更是提前规划、深化专业知识、为大学生活奠定坚实基础的宝贵机会。以下是一份详尽的高考假期预习与规划指南&#xff0c;…

Android自动化测试实践:uiautomator2 核心功能与应用指南

Android自动化测试实践&#xff1a;uiautomator2 核心功能与应用指南 uiautomator2 是一个用于Android应用的自动化测试Python库&#xff0c;支持多设备并行测试操作。它提供了丰富的API来模拟用户对App的各种操作&#xff0c;如安装、卸载、启动、停止以及清除应用数据等。此外…

30个!2024重大科学问题、工程技术难题和产业技术问题发布

【SciencePub学术】中国科协自2018年开始&#xff0c;组织开展重大科技问题难题征集发布活动&#xff0c;引导广大科技工作者紧跟世界科技发展大势&#xff0c;聚焦国家重大需求&#xff0c;开展原创性、引领性研究&#xff0c;不断夯实高质量发展的科技支撑。 自2024年征集活动…

飞书文档转markdown 超级快捷方法。

直接使用那个github的高赞官方的工具转换&#xff0c;需要设置什么小应用那种东西&#xff0c;还要审批&#xff0c;社恐人表示怕了怕了。而且文档我分享出去&#xff0c;是有权限的&#xff0c;反正无论如何生成不了 我的方法是 直接全选&#xff0c;然后粘贴进Arya - 在线 …

C#的五大设计原则-solid原则

什么是C#的五大设计原则&#xff0c;我们用人话来解释一下&#xff0c;希望小伙伴们能学会&#xff1a; 好的&#xff0c;让我们以一种幽默的方式来解释C#的五大设计原则&#xff08;SOLID&#xff09;&#xff1a; 单一职责原则&#xff08;Single Responsibility Principle…

PCL 渐进形态过滤器实现地面分割

点云地面分割 一、代码实现二、结果示例🙋 概述 渐进形态过滤器:采用先腐蚀后膨胀的运算过程,可以有效滤除场景中的建筑物、植被、车辆、行人以及交通附属设施,保留道路路面及路缘石点云。 一、代码实现 #include <iostream> #include <pcl/io/pcd_io.h> #in…

【LeetCode】976. 三角形的最大周长

1. 题目 2. 分析 需要分析好再动手编程。 如果要构成三角形的最大周长&#xff0c;那么就需要尽可能用最长的边构建。所以可以先对数组排个序&#xff0c;然后基于排序得到的结果从大往小的逐个检查长度为3的窗口&#xff0c;判断该窗口的值是否满足三角形的构成条件&#x…

鸿蒙开发Ability Kit(程序访问控制):【安全控件概述】

安全控件概述 安全控件是系统提供的一组系统实现的ArkUI组件&#xff0c;应用集成这类组件就可以实现在用户点击后自动授权&#xff0c;而无需弹窗授权。它们可以作为一种“特殊的按钮”融入应用页面&#xff0c;实现用户点击即许可的设计思路。 相较于动态申请权限的方式&am…