ui界面的介绍

news2025/7/27 20:29:26

创建一个项目时默认选择带有ui界面,ui界面的作用是方便设计者设计功能。

ui界面常见的功能:

  1. 方便对象的创建,拖入到窗口中即可
  2. 方便布局,可以直接使用布局对控件进行修饰
  3. 方便制作信号,通过转到槽的机制,快速的建立槽函数
  4. 方便信号的连接,通过信号的连接器,可以快速的连接信号和槽
  5. 方便转化控件,可以把控件提升为为包含的空控件

ui界面的介绍 :

进点击项目中的forms中的XXX.ui进入ui界面

 ui界面全貌:

 ui界面的功能介绍:

1.ui界面最左边为控件区,可以把控件拖入窗口中即可添加控件。

注意:在代码区使用该控件时需要添加    ui->   表示ui界面下的控件

 2.ui界面中间为窗口区,就是运行显示的窗口

 3.右上方为控件关系区,显示了控件的关系、类名和控件名

把一个label控件放到窗口中,即可显示关系

 4.右下方为控件属性区,可以点击窗口中的部件来修改指定的控件属性

 5.窗口的正上方为一些布局和信号生成器(功能之后介绍)

 6.窗口的下方为信号和动作列表,可以查看动作和信号和槽列表

 

ui界面转到槽的用法:

使用转到槽,可以方便的建立信号和槽函数,可以选择信号,然后自动生成槽函数。

窗口中添加一个QPushButton控件,右键点击该控件,点击转到槽

你可以选择该控件的信号:(这里选择点击clicked  点击按键信号)

 点击完成后,在widget.h中自动添加了槽函数

 在widget.cpp中自动添加了该槽函数

 当点击控件时,会执行里面的函数,即关闭界面。

代码的实现:在构造函数中添加以下函数:

    connect(ui->pushButton,&QPushButton::clicked,[=]()
    {
        close();//关闭界面
    });

在实际项目中还是建议使用代码的方式来实现信号与槽功能,这样的话代码移植性更强,方便后期的使用和维护。 

 ui界面中提升窗口部件

提升窗口部件的作用:在ui中把一个部件,设置为自定义的部件。

添加一个新文件,选择C++类名为myButton,基类设置为QPushButton

myButton.h内容为:

#ifndef MYBUTTON_H
#define MYBUTTON_H

#include <QPushButton>

class myButton : public QPushButton
{
    Q_OBJECT
public:
    explicit myButton(QWidget *parent = nullptr);
    void showText();//显示控件内容

signals:
    
};

#endif // MYBUTTON_H

myButton.cpp内容为:

#include "mybutton.h"
#include<QDebug>
myButton::myButton(QWidget *parent) : QPushButton(parent)
{
    setText("myButton");
}
void myButton::showText()
{
    qDebug()<<tr("text()");
}

在ui界面中右键,选择提升为

 添加创建的myButton类

 

 点击提升,窗口的pushbutton部件就成为myButton类

 可以在widget的构造函数中使用showText()函数

 想要取消提升的话,右键点击该控件选择取消提升

 

ui界面中添加两个控件的信号和槽

可以选择两个控件的信号或槽,实现连接。

点击该按钮或者按F4 

 会进入一个特定的操作页面,只有窗口可以操作

 选择一个按键,长按鼠标可以选择连接对象

连接到窗口

 选择信号和槽

 选中显示从QWidget继承信号和槽,可以选择更多的信号和槽函数

 选择clicked  和close() 点击确认即可实现连接

确定后,控件变为以下形状 

 

点击以下按钮,或键盘点击F3即可退出该模式 

 

 运行点击按钮即可关闭窗口。

在窗口下面的信号和槽列表可以查看添加的信号

 也可以在该该窗口添加和删除信号和槽

 添加信号和槽 

点击+号 

 选择发送者,信号,接收者,槽,实现点击第二个pushbutton 关闭窗口

删除信号和槽

选择一个信号和槽,点击-号

 

 ui界面中布局的使用

  • 一种是自己创建布局,再往里面添加控件(左边控件的布局)
  • 一种是点击一个控件,然后再里面添加布局(窗口顶部的布局)

创建布局 :

 创建布局,把左边的控件拖放到窗口中

 

 添加布局

 

 依次为:水平布局,垂直布局,表格布局,栅格布局,打破布局

 选择主窗口,点击水平布局

 选择主窗口,点击垂直布局

  其他两种不展示了

打破布局就是,删除选择控件中的布局。

 

ui界面中的子框架

子框架有两种:

  • Frame
  • Widget

这两种区别不大,一般使用Widget

子框架的作用:可以在子框架中添加控件和布局,使得可以实现更加复杂的设计,实现更精美的框架。

 

 Widget的使用:

在ui界面中添加一个Widget,并添加三个QPushButton,然后选择Widget点击垂直布局

 在ui界面中添加一个Widget,添加两个label 和两个LineEdit,选择Widget点击栅格布局

 

 可以在Widget中再添加Widget实现更复杂的设计

 

ui界面中的属性框 

因为Qt中含有多种控件,每个控件的功能不一样,所有每个控件的属性也不同,每个控件的属性,都包含各自的属性框中。

属性框中的属性,可以再帮助文档中查看它的作用

 常见的几个属性:

 QWidget:

enabled(bool)是否启用组件
setSizeIncrement(int w, int h)或(const QSize &)

保存小部件的大小增量

大小增量在 Windows 下不起作用,X11 上的窗口管理器可能会忽略大小增量

setBaseSize(int basew, int baseh)或(const QSize &)部件的基本大小
MouseTracking(bool enable))鼠标跟踪
TabletTracking(bool enable))平板电脑跟踪
FocusPolicy(Qt::FocusPolicy Policy)焦点
ContextMenuPolicy(Qt::ContextMenuPolicy Policy)上下文菜单
acceptDrops()否为此小组件启用了放置事件
ToolTipconst QString &)工具提示
setInputMethodHints(Qt::InputMethodHints hints)输入方法提示

QPushButton:

autoDefault(bool)否为自动默认按钮
Defaultbool)

是否为默认按钮

当用户按 Enter 键时,此属性设置为 true 的按钮(即对话框的默认按钮)将自动按下

falt(bool)按钮边框是否升高

QLineEdit:

echoMode(QLineEdit::EchoMode保存行编辑的回显模式。
framebool)保留线条编辑是否使用框架绘制自身
cursorPosition() const保存此行编辑的当前光标位置
dragEnd()拖动结束发射的信号

placeholderText (QString)

保存行编辑的占位符文本
CursorMoveStyle(Qt::CursorMoveStyle style)保存光标在此行编辑中的移动样式。
learButtonEnabled(bool enable)

保留行编辑在未为空时是否显示清除按钮。

如果启用,行编辑将在包含某些文本时显示尾随清除按钮,否则行编辑不会显示清除按钮(默认值)

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

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

相关文章

Cesium 入门(一)无服务 Cesium 环境

Cesium 入门&#xff08;一&#xff09;无服务环境 一、无服务环境下的 Cesium 无网络环境下的静态 cesium 地图服务&#xff0c;cesium 1.98.1 已经支持无 token 情况下的地图显示&#xff0c;默认 token 可用来展示 3d 地图&#xff0c;老版本 cesium&#xff0c;需自行前往…

Golang入门笔记(15)—— 数组

编程的世界中&#xff0c;或许是因为一次一次的定义变量&#xff0c;维护管理起来都太费劲了&#xff0c;所以推出了数组&#xff0c;将数据用数组的形式管理起来。 参考代码&#xff1a; package mainimport "fmt"func main() {var scores [5]intscores[0] 90sco…

RabbitMQ基础

文章目录一. Hello World二. Work Queues三. 消息应答1. 自动应答2. 手动应答3. 批量应答4. 消息自动重新入队四. 持久化1. 实现队列持久化2. 实现消息持久化五. 消息不公平分发1. 配置不公平分发2. 预取值六. 发布确认1. 发布确认原理2. 开启发布确认3. 单个发布确认4. 批量发…

DOM介绍及DOM获取元素的方式

1、DOM介绍 DOM&#xff08;Document Object Model&#xff09;&#xff1a;文档对象模型其实就是操作html中的标签的一些能力我们可以操作哪些内容○ 获取一个元素 ○ 移除一个元素 ○ 创建一个元素 ○ 向页面里面添加一个元素 ○ 给元素绑定一些事件 ○ 获取元素的属性 ○ …

Hive集群部署实验

目录一、实验介绍1.1 实验内容1.2 实验知识点1.3 实验环境1.4 实验资源1.5 实验步骤清单二、实训架构三、实验环境准备四、实验步骤4.1 Hive部署4.1.1 安装Hive4.1.3 修改hive配置文件4.1.4 创建Hadoop测试目录4.1.5 初始化hive元数据库4.2 Hive测试4.2.1 启动Hive4.2.2 创建测…

pytorch的gpu版本安装以及cpu版本的卸载

目录 前言 一、安装显卡驱动 二、安装Visual Studio 2019 三、安装CUDA 四、安装cudnn 五、安装anaconda 六、安装PyTorch 前言 因为最近需要导师的指导&#xff0c;我开始了unet的学习&#xff0c;虽然之前也学习过机器学习&#xff0c;但是只是浅尝辄止&#xff0c;没…

你好,以太坊社区,你准备好参加 ETH India 2022 黑客马拉松活动了吗

你好&#xff0c;以太坊社区&#xff0c;我们很高兴通过 ETH Global即将举行的ETH India 2022 黑客马拉松活动将Cartesi 技术带到亚洲&#xff01;如果你是一位喜欢探索尖端技术且是一位创新型开发人员&#xff0c;我们期待着你的到来&#xff0c;并且想帮助你将美好的DApps 发…

[BLIP]-多模态Language-Image预训练模型

论文&#xff1a;https://arxiv.org/pdf/2201.12086.pdf 代码&#xff1a;GitHub - salesforce/BLIP: PyTorch code for BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation demo&#xff1a;BLIP - a Hugging Face …

代码随想录算法训练营第二天|LeetCode 977.有序数组的平方 、209.长度最小的子数组 、59.螺旋矩阵II

LeetCode 977.有序数组的平方 题目链接&#xff1a;977.有序数组的平方 思路&#xff1a; 1、先对每个数进行遍历平方&#xff0c;并插入新的容器中 2、对容器进行排序&#xff0c;返回就可以了 缺陷&#xff1a;开辟了新的容器空间 class Solution { public:vector<int…

2019年1+X 证书 Web 前端开发中级理论考试题目原题+答案——第二套

&#x1f4da;文章目录 &#x1f3af;关于1X标准 &#x1f3af;关于中级考点 ⏩&#x1f4bb;答案速查 一、单选题&#xff08;每小题2分&#xff0c;共30小题&#xff0c;共60分&#xff09; 二、多选题&#xff08;每小题2分&#xff0c;共15小题&#xff0c;共30分&…

测试工程师必备的数据库知识

测试工程师必备的数据库知识 1. 数据库的重要性 数据库是一个容器&#xff0c;仓库存的是货物&#xff0c;而数据库存的是数据。数据很好的解决了数据到哪里去&#xff0c;以及数据从哪里来的问题。 2. 数据库工具的选择 选择数据库是根据项目特点&#xff0c;架构&#xff0c;…

枚举类与注解(复习)

枚举类的使用 枚举类的使用如何自定义枚举类枚举类中的方法注解 Annotation自定义注解jdk 中四个元注解RetentionTargetDocumentedInheritedJdk 8 中注解新特性可重复注解 Repeatable类型注解类的对象只有有限个&#xff0c;确定的 星期&#xff1a;Monday(星期一)、…、Sunday…

为什么学3D建模前没人告诉我这些,常见问题答疑

1️⃣入门前建模新手要做好哪些准备❓ 一开始啥都不懂先别着急学&#xff0c;先刷刷Pinterest&#xff0c;ArtStation等业内比较知名的网站&#xff0c;多看优秀作品提高审美水平&#xff0c;这样能快速了解建模行业&#xff0c;到时上手操作也不至于脑袋空空没有想法&#xf…

C语言-数据类型

C语言-数据类型0. 概念表达式与语句字面量常量表达式/表达式1. 整型有符号/无符号进制数原码/补码/反码int/charfloat/double2. 字符型字符型与整型字符与进制数/字符型进制数putchar/getchar转义字符字符集与字符编码C语言字符串型puts/getsprintfscanf3. 数据运算/IO基本运算…

计算机SSM毕设项目 软件工程毕业设计【源码+论文】

文章目录前言 题目1 : 基于SSM的游戏攻略资讯补丁售卖商城 <br /> 题目2 : 基于SSM的疫情期间医院门诊网站 <br /> 题目3 : 基于SSM的在线课堂学习设计与实现<br /> 题目4 : 基于SSM的大学生兼职信息系统 <br /> 题目5 : 基于SSM的大学生社团管理系统 …

nginx降权+匹配php

目录 nginx降权启动 确认普通用户无法开启nginx 创建普通用户&#xff1a; 测试是否可以启动nginx: 创建必须的相关文件 使用root用户copy配置文件中网页支持类型文件 使用root用户拷贝nginx配置文件 设置权限 修改配置文件 安装 PHP 7.4&#xff0c;配合 Nginx 安装 P…

wireshark提取视频数据之RTP包中提取H264和H265

wireshark提取视频数据之RTP包中提取H264和H265 文章目录wireshark提取视频数据之RTP包中提取H264和H2651 背景2 提取前工作3 H264视频从RTP包中提取步骤4 H265视频从RTP包中提取步骤5 后记1 背景 在流媒体相关问题分析时&#xff0c;抓包分析是非常重要的手段&#xff0c;比如…

容器入门:一文了解容器的发展历史、技术和术语

学习目标 本文为Amazon容器入门课程笔记&#xff0c;内容是容器化背后的发展历史和概念&#xff0c;介绍容器生态系统中使用的特定技术&#xff0c;并讨论容器在微服务架构中的重要性。 本篇文章仅做前两个小结的梳理和总结。看完这篇文章之后应该掌握容器背后的发展历史、技…

webpack使用详解

什么是webpack 官方定义&#xff1a;从本质上来说&#xff0c;webpack是一个现代的JavaScript的静态模块打包工具。 webpack是前端工程化的一个解决方案。 主要功能&#xff1a; 提供了前端模块化功能支持&#xff0c;模块混淆&#xff0c;代码压缩&#xff0c;处理浏览器JS兼…

腾格尔发新歌《遥远的地方》,成都邓秀菊自发红包朋友圈寻歌词

随着卡特尔世界杯拉开帷幕&#xff0c;著名音乐人腾格尔&#xff0c;再一次走进大家的视野当中&#xff0c;不过这次却不是因为唱歌。腾格尔是一个音乐人&#xff0c;他更是一个出色的球迷&#xff0c;为了表达对世界杯的喜爱&#xff0c;他还专门拍摄了段子上传网络。 说起音乐…