“QT 快速上手指南“ 之 计算器(二)组件,坐标,窗口

news2025/1/18 6:25:00

文章目录

  • 前言
  • 一、QT 基本组件用法介绍:
    • 1. QLabel :
    • 2. QPushButton :
    • 3. QLineEdit:
  • 二、坐标系统
  • 三、窗口部件的大小设置
      • 1. setSize( ) 函数:
      • 2. resize( )函数:
      • 3. setFixedSize( )函数:
      • 4. setFixedWidth( ) 和 setFixedHeight( )函数
  • 总结

前言


一、QT 基本组件用法介绍:

1. QLabel :

QLabel 被用来显示文本和图像,通常作为应用程序的菜单、状态栏、帮助和欢迎页面。用来显示一个提示性的字符串

QLabel功能性组件,一般需要父组件作为容器。

QLabel 可以作为窗口存在,但 没什么意义。

(1). 创建 QLabel
设置其中显示的文本,指定其父对象。

QLabel *myLabel = new QLabel("Hello, Qt!", this);

(2). 设置 QLabel 的文本
使用 setText ( ) 函数为 QLabel 设置文本。

myLabel->setText("Welcome to my app");

(3). 设置 QLabel 的字体和颜色

/* 设置了myLabel的字体为14像素的Arial字体,并将颜色设置为红色 */

myLabel->setFont(QFont("Arial", 14));

myLabel->setStyleSheet("color: red");

(4). 设置 label 上文本的缩进

/* 设置 label 上文本的缩进(以像素为单位) */
label->setIndent(50);

(5). QLablel的对齐方式
使用 setAlignment ( ) 函数设置QLabel的对齐方式

/* 设置了myLabel居中对齐 */

myLabel->setAlignment(Qt::AlignCenter);

2. QPushButton :

QPushButton 是 Qt 中常用的一个控件,可以实现一个按钮,供用户单击执行相应操作。
QPushButton 能够显示提示性字符串。
QPushButton是功能性组件,需要父组件作为容器。
QPushButton能够在父组件中进行定位。

(1). 创建QPushButton
创建了一个名为 myButton 的 QPushButton 对象,并设置了它的文本为 “Click me!” 。this 参数表示我们将该按钮放置在哪个 QWidget 对象中

QPushButton *myButton = new QPushButton("Click me!", this);

(2). 设置要显示的字符串

myButton->setText("button");

(3). 按钮移动到指定位置:
移动到 x= 10, y = 50 处。

myButton->move(10,50);

(4). 监听QPushButton的点击事件
使用 connect ( ) 函数监听 QPushButton 的点击事件
使用connect()函数将myButton的clicked()信号连接到MyWidget类中的onMyButtonClicked()槽函数。当按钮被单击时,clicked()信号发射,槽函数onMyButtonClicked()被调用

connect(myButton, SIGNAL(clicked()), this, SLOT(onMyButtonClicked()));

(5). 设置按钮的大小:
按钮的 高度为50, 宽度为200.

myButton->resize(200,50);

(6). 设置QPushButton的样式:
使用 setStyleSheet ( ) 函数设置 QPushButton 的样式表,例如改变了 背景颜色 和 文本颜色 .

/* 设置了myButton的背景颜色为黄色,文本颜色为黑色 */

myButton->setStyleSheet("background-color:yellow; color:black");

3. QLineEdit:

QLineEdit 是Qt中一个允许用户在单行文本框中输入或编辑文字的控件,通常用于收集用户输入的数据。
QLineEdit 能够获取用户的输入的字符串。
QLineEdit 是功能性组件,需要父组件作为容器。
QLineEdit 能够在父组件中进行定位。

(1). 创建QLineEdit

myLineEdit->setText("Enter your name here");

(2). 设置 QLineEdit 的文本内容

myLineEdit->setText("Enter your name here");

(3. 获取 QLineEdit 的文本内容

QString text = myLineEdit->text();

(4). 设置显示的字符串向右对齐

myLineEdit->setAlignment( Qt::AlignRight);

(5). 显示或隐藏QLineEdit的内容:
使用setEchoMode()函数设置QLineEdit的显示或隐藏模式

/* 设置了myLineEdit的模式为密码模式,这样在文本框中输入的文本会被隐藏 */

myLineEdit->setEchoMode(QLineEdit::Password);

二、坐标系统

在 Qt 中,坐标系统是基于平面几何的坐标系统,用于定位和定位 QWidget ,也适用于其他图形图像元素的绘制和布局。

  1. GUI 操作系统都有自己特定的 坐标系统。
    坐标原点 通常位于 QWidget 的左上角,其中x表示 水平坐标,y 表示垂直坐标。
    在这里插入图片描述
  • Qt 使用统一的坐标系统 定位部件的位置 和 大小 。
  • Qt 部件类提供 成员函数 在坐标系统中进行定位。
  • QWidget 类提供了窗口部件所需的坐标系统成员函数。
  1. 坐标系统 的 成员函数 :
    在这里插入图片描述
    ①. x( ) 和 y( ) --------- 获取 QWidget 在其父对象中的 xy 坐标,返回 int 类型值。

②. geometry( ) ---------函数返回 QWidget 的 位置 和 大小 。这个位置和大小是基于 QWidget 的父QWidget 或者是相对于屏幕的,并且是相对于 QWidget 的左上角的。返回一个 QRect 对象。
在这里插入图片描述

③ . frameGeometry( ) ---------函数返回QWidget的情况和大小,包括QWidget的边框、标题栏和窗口管理器的大小。
在这里插入图片描述

④. width ( )和 height ( )----------width( ) 函数返回 QWidget 的宽度, height( ) 函数返回 QWidget 的高度。

⑤. move( ) ---------- 移动QWidget的位置.

⑥. resize( )------------ 更改QWidget的大小。

  • width ( )和 height ( ) 相当于
    在这里插入图片描述
  • x( ) 和 y( ) 相当于
    在这里插入图片描述

三、窗口部件的大小设置

1. setSize( ) 函数:

// 设置QWidget对象的大小为500x300像素

myWidget->setSize(QSize(500, 300));

2. resize( )函数:

/* width和height分别为QWidget对象的宽度和高度(像素数目) */

myWidget->resize(width, height);

3. setFixedSize( )函数:

将窗口大小锁定为固定值,不能够通过鼠标或键盘改变

myWidget->setFixedSize(width, height);

4. setFixedWidth( ) 和 setFixedHeight( )函数

setFixedWidth()和setFixedHeight()函数用于分别设置QWidget对象的宽度和高度

myWidget->setFixedWidth(width);

myWidget->setFixedHeight(height);

总结

下篇文章为大家介绍 QT的 信号与槽,消息处理机制。

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

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

相关文章

标准化归一化方法

一、经典机器学习的归一化算法 分别是0-1标准化(Max-Min Normalization)和Z-Score标准化。 1.1 0-1标准化方法 每一列中的元素减去当前列的最小值,再除以该列的极差。 不过在深度学习领域,我们更希望输入模型的数据是Zero-Ce…

使用Serv-U搭建FTP服务器并公网访问【内网穿透】

文章目录1. 前言2. 本地FTP搭建2.1 Serv-U下载和安装2.2 Serv-U共享网页测试2.3 Cpolar下载和安装3. 本地FTP发布3.1 Cpolar云端设置3.2 Cpolar本地设置4. 公网访问测试5. 结语1. 前言 科技日益发展的今天,移动电子设备似乎成了我们生活的主角,智能手机…

这些IT行业趋势,将改变2023

上一周,你被"AI"刷屏了吗? 打开任何一家科技媒体,人工智能都是不变的热门话题。周初大家还在用ChatGPT写论文、查资料、写代码,到周末的时候大家已经开始用GPT-4图像识别来做饭、Microsoft 365 Copilot 来写PPT了。 GP…

【周末闲谈】AI的旅途

个人主页:【😊个人主页】 系列专栏:【❤️周末闲谈】 系列目录 ✨第一周 二进制VS三进制 ✨第二周 文心一言,模仿还是超越? ✨第二周 畅想AR 文章目录系列目录前言AIAI的开端第一个AI程序AI的寒冬关于AI的思考末尾前言…

憨批的语义分割重制版11——Keras 搭建自己的HRNetV2语义分割平台

憨批的语义分割重制版11——Keras 搭建自己的HRNetV2语义分割平台学习前言什么是HRNetV2模型代码下载HRNetV2实现思路一、预测部分1、主干网络介绍a、Section-1b、Section-2c、Section-3d、Section-42、特征整合部分3、利用特征获得预测结果二、训练部分1、训练文件详解2、LOSS…

【Python童年游戏】满满的回忆杀—那些年玩过的童年游戏你还记得吗?那个才是你的菜?看到第一个我就泪奔了(致我们逝去的青春)

导语 滴一一学生卡🙌 结伴上车的学生仔子们 用笑声打破车厢的沉默 大人眼里的晚高峰 是给放学后快乐😀时光的加时 下车的学生匆匆起身带起 一阵熟悉的栀子香于💓 是关于校园的记忆 开始零零散散地闪现 放学后集合的秘密基地/跟着城…

Half-UNet:用于医学图像分割的简化U-Net架构

Half-UNet简化了编码器和解码器,还使用了Ghost模块(GhostNet)。并重新设计的体系结构,把通道数进行统一。 论文动机 编码器的不同类型的架构图,编码器(A-C)的结构分别来源于U-Net的编码器、解码器和全的Unet结构。 下面是上图的一些结果指标…

4.2学习周报

文章目录前言文献阅读摘要介绍时间序列预测目前存在的问题时间序列预测方法分类未来方向时间序列预测总结前言 本周阅读文献《Forecast Methods for Time Series Data: A Survey》,本文主要对目前时间序列数据建模方法进行分类,主要分为了三类&#xff…

Linux->文件系统磁盘文件管理

目录 1 磁盘结构 2 逻辑抽象管理磁盘 2.1 逻辑抽象 2.2 管理磁盘 2.3 补充知识 3 软硬连接 1 磁盘结构 本篇的学习需要建立在大家在脑海中有一副磁盘的结构才能进行下去,所以我会以图解的方式为大家简单讲解一下,注:博主对这一部分并不是…

深度学习实战——卷积神经网络/CNN实践(LeNet、Resnet)

忆如完整项目/代码详见github:https://github.com/yiru1225(转载标明出处 勿白嫖 star for projects thanks) 系列文章目录 本系列博客重点在深度学习相关实践(有问题欢迎在评论区讨论指出,或直接私信联系我&#xf…

详细介绍别人电脑访问到自己电脑运行的项目

文章目录 让别人远程访问你的代码网站项目或临时演示你的项目给客户的方式详解 引言一、创建一个你想要别人访问的项目二、明确你想要将这个网站或者项目存放的地方 终端分类服务器设备WEB服务器三、部署我们的网页 本地部署流程进入浏览器输入网址访问获取本机的IP地址&#…

多模态特征融合:图像、语音、文本如何转为特征向量并进行分类

多模态特征融合前言输入层,数据集转为特征向量图像语音什么是时域信号,什么是频域信号语音信号转换 - 1.傅立叶变换语音信号转换 - 2.梅尔频率倒谱系数文本词袋模型词嵌入模型输出层,多模态模型合并前言 学习多模态的话题可以从深度学习的分…

API接口安全—webservice、Swagger、WEBpack

API接口安全—webservice、Swagger、WEBpack1. API接口介绍1.1. 常用的API接口类1.1.1. API接口分类1.1.1.1. 类库型API1.1.1.2. 操作系统型API1.1.1.3. 远程应用型API1.1.1.4. WEB应用型API1.1.1.5. 总结1.1.2. API接口类型1.1.2.1. HTTP类接口1.1.2.2. RPC类接口1.1.2.3. web…

NLP与ChatGPT的碰撞:大模型和小模型联合发力

ChatGPT真的太火了!作为NLP的终结者,ChatGPT又会与NLP发生怎么样的碰撞?大模型可以替代小模型吗?NLP又将何去何从?今天给大家推荐一本好书:《基于NLP的内容理解》! 文章目录一、背景二、书籍介绍…

【原创】AIGC之ChatGPT工作原理

AIGC是什么 AIGC - AI Generated Content (AI生成内容),对应我们的过去的主要是 UGC(User Generated Content)和 PGC(Professional user Generated Content)。 AIGC就是说所有输出内容是通过AI机…

2023年3月的10篇论文推荐

三月有很多的重大产品发布,包括刚刚发布的GPT4,还有Meta刚发布就被泄露的LLaMA,midjourney V5,还有ChatGPT的API(非常便宜)等等。 但是本文整理的是本月应该阅读的10篇论文,将包括多模态语言模…

Linux中shell内外命令讲解(下)

♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的绽放&#xff0…

MySQL数据库:联合查询、子句查询、合并查询

一、联合查询 1.概念 简单理解就是将多张表合并到一起,然后进行数据查询,所有也叫多表联查。 如何将两张表合并到一起? 取两张表的笛卡儿积:将表1中的数据逐条与表2中的数据进行合并,最终形成的新的临时表&#xff0…

py征途4之无效思路

事件回顾: 近期班里组织了一个跑团,使用的是keep跑团助手(小程序)。每个人都有一个昵称,要对“每日跑量”进行统计,以明确到底有哪些人跑了步,哪些人没跑步。 为了解决这个问题,从3月…

springboot登录校验[JWT]

前言: 👏作者简介:我是笑霸final,一名热爱技术的在校学生。 📝个人主页:个人主页1 || 笑霸final的主页2 📕系列专栏:后端专栏 📧如果文章知识点有错误的地方,…