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

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

前言


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


1. QLabel :

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


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


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


(1). 创建 QLabel:

设置其中显示的文本,指定其父对象。


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

1

(2). 设置 QLabel 的文本:

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


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

1

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


/* 设置了myLabel的字体为14像素的Arial字体,并将颜色设置为红色 */
myLabel->setFont(QFont("Arial", 14));
myLabel->setStyleSheet("color: red");
1


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


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

(5). QLablel的对齐方式

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


/* 设置了myLabel居中对齐 */
myLabel->setAlignment(Qt::AlignCenter);
1

2

3

2. QPushButton :

① QPushButton 是 Qt 中常用的一个控件,可以实现一个按钮,供用户单击执行相应操作。

② QPushButton 能够显示提示性字符串。

③ QPushButton是功能性组件,需要父组件作为容器。

④ QPushButton能够在父组件中进行定位。


(1). 创建QPushButton:

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


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

1

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


myButton->setText("button");
1

(3). 按钮移动到指定位置:

移动到 x= 10, y = 50 处。


myButton->move(10,50);

1

(4). 监听QPushButton的点击事件:

使用 connect ( ) 函数监听 QPushButton 的点击事件

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


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

1

(5). 设置按钮的大小:

按钮的 高度为50, 宽度为200.


myButton->resize(200,50);
1

(6). 设置QPushButton的样式:

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

/* 设置了myButton的背景颜色为黄色,文本颜色为黑色 */
myButton->setStyleSheet("background-color:yellow; color:black");
1
2
3

3. QLineEdit:

① QLineEdit 是Qt中一个允许用户在单行文本框中输入或编辑文字的控件,通常用于收集用户输入的数据。

② QLineEdit 能够获取用户的输入的字符串。

③ QLineEdit 是功能性组件,需要父组件作为容器。

④ QLineEdit 能够在父组件中进行定位。


(1). 创建QLineEdit:


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

1

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


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

1

(3. 获取 QLineEdit 的文本内容:


QString text = myLineEdit->text();

1

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


myLineEdit->setAlignment( Qt::AlignRight);
1

(5). 显示或隐藏QLineEdit的内容:

使用setEchoMode()函数设置QLineEdit的显示或隐藏模式


/* 设置了myLineEdit的模式为密码模式,这样在文本框中输入的文本会被隐藏 */
myLineEdit->setEchoMode(QLineEdit::Password);
1

2

3

二、坐标系统


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


GUI 操作系统都有自己特定的 坐标系统。

坐标原点 通常位于 QWidget 的左上角,其中x表示 水平坐标,y 表示垂直坐标。

fb39185ee24bf03b0493ab07832a99b.png

Qt 使用统一的坐标系统 定位部件的位置 和 大小 。

Qt 部件类提供 成员函数 在坐标系统中进行定位。

QWidget 类提供了窗口部件所需的坐标系统成员函数。

坐标系统 的 成员函数 :

d8aa6a838970d06c17d2df4baf5570a.png

①. x( ) 和 y( ) --------- 获取 QWidget 在其父对象中的 x 、y 坐标,返回 int 类型值。

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

c7d0c0243659cd79cbff1a3a2600647.png


③ . frameGeometry( ) ---------函数返回QWidget的情况和大小,包括QWidget的边框、标题栏和窗口管理器的大小。


fdd0ca2a818fe76b89db4af7c0b4fdf.png

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


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


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


width ( )和 height ( ) 相当于 :

ce14e681d7c07be0c4e09f07154419b.png

x( ) 和 y( ) 相当于 :

56850e07b1d523af778035d0c62e4c5.png

三、窗口部件的大小设置


1. setSize( ) 函数:

// 设置QWidget对象的大小为500x300像素
myWidget->setSize(QSize(500, 300));
1

2

3

2. resize( )函数:

/* width和height分别为QWidget对象的宽度和高度(像素数目) */
myWidget->resize(width, height);
1

2

3

3. setFixedSize( )函数:

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


myWidget->setFixedSize(width, height);
1
4. setFixedWidth( ) 和 setFixedHeight( )函数
setFixedWidth()和setFixedHeight()函数用于分别设置QWidget对象的宽度和高度
myWidget->setFixedWidth(width);
myWidget->setFixedHeight(height);
1
2

3

总结

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

————————————————


相关文章
|
5天前
|
C++
基于Qt的简易计算器设计与实现
基于Qt的简易计算器设计与实现
72 0
|
5天前
|
算法 API C++
【Qt UI】QT 窗口/控件置顶方法详解
【Qt UI】QT 窗口/控件置顶方法详解
90 0
|
5天前
|
网络协议 C++
C++ Qt开发:QTcpSocket网络通信组件
`QTcpSocket`和`QTcpServer`是Qt中用于实现基于TCP(Transmission Control Protocol)通信的两个关键类。TCP是一种面向连接的协议,它提供可靠的、双向的、面向字节流的通信。这两个类允许Qt应用程序在网络上建立客户端和服务器之间的连接。Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用`QTcpSocket`组件实现基于TCP的网络通信功能。
49 8
C++ Qt开发:QTcpSocket网络通信组件
Qt 窗口常用位置API函数 & 绘图原理 & 双缓冲机制 总结
Qt 窗口常用位置API函数 & 绘图原理 & 双缓冲机制 总结
|
5天前
|
存储
Qt更新组件出现(“要继续此操作,至少需要一个有效且已启用的储存库”)
Qt更新组件出现(“要继续此操作,至少需要一个有效且已启用的储存库”)
Qt更新组件出现(“要继续此操作,至少需要一个有效且已启用的储存库”)
|
5天前
QT取消标题栏,如何实现窗口移动
QT取消标题栏,如何实现窗口移动
|
5天前
|
测试技术 API UED
【Qt 应用开发 】初步理解 Qt窗口中的模态性应用
【Qt 应用开发 】初步理解 Qt窗口中的模态性应用
74 1
|
5天前
|
算法 API 开发者
【Qt UI相关】Qt中如何控制 窗口的最大化、最小化和关闭按钮?一文带你掌握用法
【Qt UI相关】Qt中如何控制 窗口的最大化、最小化和关闭按钮?一文带你掌握用法
175 1
|
5天前
|
编译器 C语言 Android开发
Qt5安装及组件选择(Qt 5.12)
Qt5安装及组件选择(Qt 5.12)
178 2
|
5天前
|
安全 Linux 网络安全
Qt SSL/TLS 安全通信类:构建安全网络应用的关键组件
Qt SSL/TLS 安全通信类:构建安全网络应用的关键组件
85 0

推荐镜像

更多