Qt 之 QWidget QLabel
一、窗口组件
图形用户界面由不同的窗口 和 窗口组件构成。
组件的类型:
- 容器类:(父组件) 用于包含其他的界面组件。
- 功能类:(子组件)用于实现特定的交互功能。
在 Qt 中,如果顶级组件没有父组件,就叫做窗口。
1. QWidget 组件
QWidget是Qt框架中的一个基类,用于创建窗口和用户界面的可视化组件。它提供了绘制、事件处理、布局管理、窗口管理等功能,是构建各种自定义窗口和用户界面的基础。
QWidget类是所有用户界面对象的基类。
下面是一些常用的QWidget类的函数及其作用:
| 函数 | 作用 |
|---|---|
| QWidget(parent) | 构造函数,创建一个QWidget对象,并设置其父对象 |
| setWindowTitle(title) | 设置窗口的标题 |
| setGeometry(x, y, width, height) | 设置窗口的位置和大小 |
| setFixedSize(width, height) | 设置窗口的固定大小 |
| setLayout(layout) | 设置窗口的布局管理器 |
| show() | 显示窗口 |
| hide() | 隐藏窗口 |
| close() | 关闭窗口 |
| resize(width, height) | 调整窗口的大小 |
| move(x, y) | 移动窗口的位置 |
| setStyleSheet(styleSheet) | 设置窗口的样式表 |
| setWindowIcon(icon) | 设置窗口的图标 |
| setWindowFlags(flags) | 设置窗口的标志 |
| setVisible(visible) | 设置窗口的可见性 |
| setEnabled(enabled) | 设置窗口的可用性 |
| size() | 返回窗口的大小 |
| width() | 返回窗口的宽度 |
| height() | 返回窗口的高度 |
| pos() | 返回窗口的位置 |
| x() | 返回窗口的 x 坐标 |
| y() | 返回窗口的 y 坐标 |
| isEnabled() | 检查窗口是否启用 |
| isVisible() | 检查窗口是否可见 |
| isHidden() | 检查窗口是否隐藏 |
| closeEvent(event) | 窗口关闭事件的处理函数 |
| resizeEvent(event) | 窗口大小调整事件的处理函数 |
| moveEvent(event) | 窗口移动事件的处理函数 |
2. QLabel组件
QLabel是Qt框架中的一个用于显示文本或图像的小部件。它是QWidget的子类,提供了一种简单方便的方法来展示静态文本或图像,并且可以通过设置样式和属性来进行自定义。
setText(text: str):设置标签的文本内容。可以使用HTML标记来格式化文本,例如设置字体、颜色、链接等。setPixmap(pixmap: QPixmap):设置标签的像素图像。可以通过QPixmap类的构造函数或从文件加载图像来创建QPixmap对象。setAlignment(alignment: Qt.AlignmentFlag):设置标签中文本或图像的对齐方式。可以使用Qt.AlignmentFlag中的常量来指定不同的对齐方式,如居中、靠左、靠右等。setWordWrap(enabled: bool):设置标签的自动换行功能。当文本内容超过标签的宽度时,如果启用了自动换行,文本会自动换行到下一行显示。setStyleSheet(styleSheet: str):设置标签的样式表。可以使用CSS样式语法来定义标签的外观,如字体、颜色、背景等。
| 方法 | 描述 |
|---|---|
| setAlignment() | 设置文本对齐方式,如Qt.AlignLeft |
| setIdent() | 设置文本缩进值 |
| setPixmap() | 设置label为图片 |
| Text() | 获取label的文本内容 |
| setText() | 设置label的文本内容 |
| selectedText() | 返回所选文本 |
特点:
QLabel可以显示纯文本、富文本和图像。
它可以自动调整大小以适应显示内容的大小。
QLabel可以设置对齐方式、字体、颜色等属性。
2.1 常用方法:
setText(text): 设置标签显示的文本内容
1
label.setText("Hello, PyQt5!")
setPixmap(pixmap): 设置标签显示的图像内容。
1
label.setPixmap(QtGui.QPixmap("image.png"))
setAlignment(alignment): 设置文本在标签中的对齐方式。
1
label.setAlignment(QtCore.Qt.AlignCenter)
setStyleSheet(styleSheet): 设置标签的样式表。
1
label.setStyleSheet("color: blue; font-size: 18px;")
clear(): 清除标签的内容。
1
label.clear()
2.2 常用信号
- linkActivated(str): 当标签中的链接被点击时发射。
1
2
3
4label.linkActivated.connect(link_clicked)
def link_clicked(url):
print("Link clicked:", url) - linkHovered(str): 当鼠标悬停在带有链接的文本上时发射。
1
2
3
4label.linkHovered.connect(link_hovered)
def link_hovered(url):
print("Link hovered:", url) - customContextMenuRequested(QPoint): 当用户请求上下文菜单时发射。
1
2
3
4label.customContextMenuRequested.connect(context_menu_requested)
def context_menu_requested(pos):
print("Context menu requested at:", pos)
评论









