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

QT初入门-界面设置

前言:之前课设的时候,主包比较忙,没时间了解学习qt(可能是借口了),暑假来浅学一下。

Qt是一个跨平台的C++图形界面开发框架,现在由 Qt Company维护。它广泛应用于开发图形用户界面(GUI)非图形程序(如控制台工具和服务器)

声明

本篇博客大部分的内容来自于B站up主“社长_嵌入式”,

链接:【C++QT2024年最新版】https://www.bilibili.com/video/BV1GW42197ff?p=35&vd_source=bd5cd167d80f9a527099508a327cb09f

QT环境安装

在网站Index of /archive/qt/5.12/5.12.9下载windows版本的qt(需要梯子)

安装完成后打开Qt Creator,界面如下

新建QT项目

点击“编辑”,点击“文件”,点击“新建文件或项目”

如图选择,点击“choose”

一直“下一步”,到如下“完成”

会有个自动生成的空项目

右键“untitled”,点击“运行”

或者点击下方的“运行”箭头

成功运行,显示如下空的Qt项目

创建一个简单记事本项目

项目选择“Qt”项目,应用选择widgets界面应用,支持图形界面,Console是命令行环境

这个项目窗体选择“QWidget”就好了,“QMainWindow”是包含完整菜单栏、工具栏和状态栏的主窗口应用程序框架,适合于复杂的应用程序。“QWidget”是一个简单的窗口,没有内置的菜单栏、工具栏和状态栏。

在main.cpp中,主函数的第一行代码QApplication a(argc,argv)是创建一个QApplication的实例负责管理应用程序的许多核心功能,几乎是每个Qt应用程序必须做的一步。

QApplication::exec()是用来启动应用程序的事件循环的。

 按钮创建

点击“widget.ui”到“设计”模式

拖拽出三个“Push Button”按钮到窗口,可以在右边修改合适名字,作为“打开”、“关闭”、“保存”三个按钮

可以双击按钮修改显示名字

 布局创建

框选住三个按钮,点击上面横着的三杠“水平布局”

我们可以拖拽一个水平弹簧“Horizontal Spacer”到布局右侧,使得改变布局大小,其中的按钮大小也不会改变

按键底色设置 

在容器中再拖拽出一个“widget”或者“Frame”出来

 右键,点击“改变样式表”,点击“添加颜色”,点击“background-color”

选择想要的颜色,点击“OK”

再将整个按钮布局拖拽进背景框架中去,注意右边horizontalLayout就变成了Background(原widget,主包改名了)的派生类。

创建文本区

在“Input Widgets”区拖拽出一个“Text Edit”

底部显示区

在“Containers”中再拖拽出一个“widget”,编辑颜色与上侧一致

在“Display Widgets”中拖拽出两个“Lable”,用于显示记事本属性标签 

同上,将两个框水平布局

布局设置

按住“CRTL”键,在右侧同时选中三块区域

点击“竖直布局”

图上无任何文字显示,因为widget框架高度太小了,调整两个widget的最小高度为合适值,直至文字正常显示。

如图,三块区域间有浅灰色布局,这是竖直布局间的间隔

点击外侧的“veryicalLayout”,将“layoutSpacing”的值改为0,间隙消失。

然后可以将窗口填充整个widget,这样运行后不会有留白,运行显示如许下。

子控件大小自适应

 widget.cpp的第8行虽然将widget和ui的窗口进行了关联,但如果窗口大小发生变化,里面的布局并不能随之发生变化。我们可以增加如下代码

this->setLayout(ui->verticalLayout);

this代表本身的子控件,setLayout()设置布局,参数是我们布局里的最大布局,verticalLayout。

显示如下

此时我们观察到,底部的文本还不能自适应,我们可以在widget.cpp添加如下代码,将widget_2与horizontalLayout_2相关联

ui->widget_2->setLayout(ui->horizontalLayout_2);

此时底部文本能跟随移动,但还不是我们希望的那种定位移动

先将horizontalLayout拉长至合适位置

再在左右两边分别加上弹簧控制

 我们可以修改右弹簧的长度至合适值,设置显示固定“Fixed”

 运行效果如下,改变窗口大小,文本位置相对固定

UI美化风格设计

在“帮助”里,“索引”块里搜索“stylesheet”(小写的sheet)

 “The Style Sheet Syntax”里面介绍的就是语法,不需要看得很细,只要想用时会用就好。如,我们想要设置按钮背景色为白色,就可以参照QPushButton的最下面一行的代码,复制代码QPushButton { color: red; background-color: white }。

右键按钮,如下图复制编辑

效果如下,第一个“打开”就是我编辑后运行的效果

还可以设置悬停时的样式

以及点击时的样式,输入如下(可复制至其它按钮)

QPushButton { background-color: white }
QPushButton:hover { color: green }
QPushButton:pressed { background-color: rgb(173, 173, 173);color: white }

 演示效果如下

工程添加本地图标

我的图标文件存在这个icon文件夹中,复制这个文件夹

右键.pro文件,点击“在Explorer中显示”

 将文件复制到打开的文件夹中去

右键工程,点击“Add New”

点击“Qt”,点击“Qt Resourse File”,点击“choose”

取文件夹名称,最后点击“完成”,“Resourse”文件夹下面就多了个res.qrc文件

 “Add Prefix”里可以去掉前缀

点击“Add Files”,将“icon”文件夹中的所有图片选中(主包就一张),然后“Ctrl+S”保存(没保存文件右侧有*)(注意,文件名不要有中文,会出问题)

点击“ui”设计界面,找到最外层“widget”的“windowIcon”属性

点击右侧箭头,点击“选择资源”

选择Resourse下的icon文件夹,选择想选择的图片(注意图片文件命名不要含中文),点击“OK”

 运行结果如下

还可以将title同前面一样改一下

运行效果如下

按键添加本地图标

打开“ui”文件,右键按键,点击“改变样式表”,点击“添加资源”右边的小三角,点击“board-image”,选择想要的图片

再将按钮的中文显示给删掉(防止遮挡图标)

若图表显示太小,则修改按钮属性“minimumSize”的宽度和高度值

http://www.dtcms.com/a/309794.html

相关文章:

  • Metamorph、LlamaFusion、MetaQuery论文解读
  • Linux的对称多处理(SMP)机制
  • embodied复现所需docker环境配置粗略流程
  • CentOS7下同步时间的几种方式(NTP 、Chrony和systemd-timesyncd)
  • 2025年08月01日Github流行趋势
  • 注解退散!纯XML打造MyBatis持久层的终极形态
  • OCR、文档解析工具合集
  • C++ 前缀和、双指针
  • [位运算]2411. 按位或最大的最小子数组长度
  • 下载一个JeecgBoot-master项目 导入idea需要什么操作启动项目
  • 26数据结构-顺序表
  • SpringMVC RESTful 核心要点
  • Excel数据转化为Xmind思维导图全流程(含Word转化格式),实用
  • hadoop.yarn 带时间的LRU 延迟删除
  • 如何在 Mac OS 上安装 Cursor
  • 2025 腾讯广告算法大赛 Baseline 项目解析
  • Python - 数据分析三剑客之Matplotlib
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘altair’问题
  • Apache Flink 2.1.0: 面向实时 Data + AI 全面升级,开启智能流处理新纪元
  • 从游戏NPC到手术助手:Agent AI重构多模态交互,具身智能打开AGI新大门
  • AI 重塑软件产业:从技术革命到生态重构
  • 超聚变:智能体时代,AI原生重构城企数智化基因
  • 技术信任革命:区块链重构信用机制全解析
  • 国内用户如何用手机进行YouTube直播?
  • 【CDH × Docker】一次测试部署,N 次复用的环境镜像方案
  • 9.1无法恢复的错误与 panic!
  • 基于Ascend CANN的FFmpeg与OpenCV编译指南
  • 观测云基于 ToB/ToC 业务可观测最佳实践
  • 蚂蚁开源团队发布的2025大模型开源开发生态发展情况速览
  • AI+向量化