“QT 快速上手指南“ 之 计算器(二)

news2025/3/1 11:14:10

文章目录

  • 前言
  • 一、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/412469.html

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

相关文章

大一被忽悠进了培训班

大家好,我是帅地。 最近我的知识星球开始营业,不少大一大二的小伙伴也是纷纷加入了星球,并且咨询的问题也是五花八门,反正就是,各种迷茫,其中有一个学弟,才大一,就报考培训班&#…

命令注入概述

概述命令注入即 Command Injection。是指在开发需求中,需要调用一些系统的命令来完成某些特定的功能。当未对用户输入的参数进行严格的过滤时,则有可能发生命令注入。攻击者可以通过提交恶意构造的参数破坏命令语句结构,从而达到执行恶意命令…

九大经典算法

1. 冒泡排序(Bubble Sort) 两个数比较大小,通过两两交换,像水中的泡泡一样,较大的数下沉,较小的数冒起来。 算法描述: 1.比较相邻的元素。如果第一个比第二个大,就交换它们两个&a…

界面组件DevExtreme v22.2 - Pivot Grid、UI组件升级

DevExtreme拥有高性能的HTML5 / JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NET Core,jQuery,Knockout等)构建交互式的Web应用程序。从Angular和Reac&#xff0c…

【Golang入门】简介与基本语法学习

下面是一篇关于Golang新手入门的博客,记录一下。(如果有语言基础基本可以1小时入门) 一、什么是Golang? Golang(又称Go)是一种由谷歌公司开发的编程语言。它是一种静态类型、编译型、并发型语言&#xff0…

从Hive源码解读大数据开发为什么可以脱离SQL、Java、Scala

从Hive源码解读大数据开发为什么可以脱离SQL、Java、Scala 前言 【本文适合有一定计算机基础/半年工作经验的读者食用。立个Flg,愿天下不再有肤浅的SQL Boy】 谈到大数据开发,占据绝大多数人口的就是SQL Boy,不接受反驳,毕竟大…

离散数学_第二章:基本结构:集合、函数、序列、求和和矩阵(1)

集合与函数2.1 集合 2.1.1 集合的基本概念 2.1.2 集合的表示方法 2.1.3 文氏图 2.1.4 证明集合相等 2.1.5 集合的大小 ——基 2.1.6 幂集 2.1.7 集族、指标集 2.1.8 笛卡尔积 2.1.9 容斥原理2.1 集合 2.1.1 集合的基本概念 定义1:集合 是不同对象的一个无序的聚…

23黑马vue

1、Vue概述 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, …

铁路轨道不平顺数据分析与预测

铁路轨道不平顺数据分析与预测 1.引言 铁路轨道作为铁行车的基础设施&#xff0c;是铁路线路的重要组成部分。随着经济和交通运输业的发展&#xff0c;我国的铁路运输正朝着高速和重载方向迅速发展&#xff0c;与此同时&#xff0c;轨道结构承受来自列车荷载、运行速度的冲击…

Elasticsearch 学习+SpringBoot实战教程(三)

需要学习基础的可参照这两文章 Elasticsearch 学习SpringBoot实战教程&#xff08;一&#xff09; Elasticsearch 学习SpringBoot实战教程&#xff08;一&#xff09;_桂亭亭的博客-CSDN博客 Elasticsearch 学习SpringBoot实战教程&#xff08;二&#xff09; Elasticsearch …

QT笔记——QtXlsx操作Execl

使用第三方库QtXlsx来操作execl 环境&#xff1a;vs2019 qt5.12.2 第一步&#xff1a; 我们需要找到对应的下载QtXlsx的第三方库的下载路径&#xff1a; QtXlsx下载 第二步&#xff1a; 编译我们的QtXlsx&#xff0c;看了网上有很多中的例子&#xff0c;我这边暂时只举例 vsqt…

一个评测模型+10个问题,摸清盘古、通义千问、文心一言、ChatGPT的“家底”!...

‍数据智能产业创新服务媒体——聚焦数智 改变商业毫无疑问&#xff0c;全球已经在进行大模型的军备竞赛了&#xff0c;“有头有脸”的科技巨头都不会缺席。昨天阿里巴巴内测了通义千问&#xff0c;今天华为公布了盘古大模型的最新进展。不久前百度公布了文心一言、360也公布了…

技术经济学(刘秋华)(第三版)——第三章 经济型评价的基本要素

第三章 经济型评价的基本要素 技术经济分析的基本原理包括技术经济比较原理和资金报酬原理。技术经济比较原理又包括满足需要的可比原理、总消耗费用的可比原理、价格指标的可比原理和时间因素的可比原理四个方面。这些原理的作用在于确保技术方案的经济性和可行性。 其中&am…

ChatGPT批量翻译-ChatGPT批量生成多国语言

ChatGPT翻译的准吗 ChatGPT是一种基于Transformer架构的自然语言处理技术&#xff0c;其翻译准确性取决于所训练的模型和数据集的质量。在特定的语料库和训练数据下&#xff0c;ChatGPT可以实现一定程度的准确翻译。但是&#xff0c;与人工翻译相比&#xff0c;ChatGPT的翻译质…

【Deep Learning】CNN卷积神经网络—卷积

卷积 文章目录卷积Quickstart一&#xff0c;计算机视觉&#xff08;Computer vision&#xff09;二&#xff0c;边缘检测&#xff08;Edge detection example&#xff09;-2.1 卷积操作过程&#xff1a;三&#xff0c;边缘检测的更多知识&#xff08;More edge detection&#…

4月想跳槽的同学,没有更好的选择,可以去美团

在美团干了半年&#xff0c;说一下自己的感受&#xff0c;美团是一家福利中等&#xff0c;工资待遇中上&#xff0c;高层管理团队强大&#xff0c;加班强度一般&#xff0c;技术不错&#xff0c;办公环境一般&#xff0c;工作氛围中上&#xff0c;部门差距之间工作体验差距巨大…

SpringBoot-数据访问-整合MyBatis-配置版

引入依赖 <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.4</version> </dependency> ConditionalOnSingleCandidate(DataSource.class) 单一数…

视图的使用

为什么引入视图&#xff08;Views&#xff09; 如果您读过其他类似的书&#xff0c;可能会看到这些书在介绍视图时列举了许多引入视图的原因。其中认为最重要的原因是维护数据的独立性。那么什么是数据的独立性呢&#xff1f; 早期信息系统的设计与开发多采用模块驱动方式&am…

NumPy 秘籍中文第二版:七、性能分析和调试

原文&#xff1a;NumPy Cookbook - Second Edition 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 在本章中&#xff0c;我们将介绍以下秘籍&#xff1a; 使用timeit进行性能分析使用 IPython 进行分析安装line_profiler使用line_profiler分析代码具有cProfile扩展名…

【分布式事务AT模式 本地部署Seata服务】分布式事务框架Seata详细讲解

前言 这篇文章我会从0到1详细搭建分布式事务框架seata的使用&#xff0c;那么我们首先要先了解一下什么是分布式事务&#xff1f; 本篇文章是本地启动seata服务并且注册到nacos中&#xff0c;在SpringCloud中整合seata框架请转移下方连接 点我跳转SpringCloud整合seata教程&…