PySide6 GUI 编程(7):QLabel的使用
原创
密码学人CipherHUB
修改
于
2024-07-20 22:55:53
修改
于
2024-07-20 22:55:53
代码可运行
运行总次数:
0
代码可运行
QLabel 的简单使用
字符展示
设置字体大小并展示
from PySide6.QtCore import Qt
from PySide6.QtWidgets import QApplication, QLabel, QMainWindow
class LabelFont(QMainWindow):
def __init__(self):
super().__init__()
label = QLabel()
label.setText('你好,PySide6!\n\nHello, PySide6!')
label.setAlignment(Qt.AlignmentFlag.AlignHCenter | Qt.AlignmentFlag.AlignVCenter)
my_font = label.font()
my_font.setPointSize(25)
label.setFont(my_font)
self.setWindowTitle('Label 字体大小设置')
self.setCentralWidget(label)
self.setFixedWidth(800)
self.setFixedHeight(400)
if __name__ == '__main__':
app = QApplication()
ins = LabelFont()
ins.show()
app.exec()
实现效果
运行效果
展示图片
QLabel 展示静态图片并设置图片自适应大小
from PySide6.QtCore import QSize, Qt
from PySide6.QtGui import QPixmap
from PySide6.QtWidgets import QApplication, QLabel, QMainWindow
class LabelPixmap(QMainWindow):
def __init__(self):
super().__init__()
my_label = QLabel()
my_pixmap = QPixmap('./PySide6 Q\'Widget 类.png')
# 指定图片的尺寸大小
scaled = my_pixmap.scaled(QSize(800, 800),
Qt.AspectRatioMode.KeepAspectRatio,
Qt.TransformationMode.SmoothTransformation)
my_label.setPixmap(scaled)
# 内容随着 label 尺寸的变化而进行变化展示
my_label.setScaledContents(True)
my_label.setAlignment(Qt.AlignmentFlag.AlignVCenter | Qt.AlignmentFlag.AlignHCenter)
self.setWindowTitle('设置 label pix map')
self.setCentralWidget(my_label)
if __name__ == '__main__':
app = QApplication()
ins = LabelPixmap()
ins.show()
app.exec()
实现效果
运行效果
简单的与输入框联动
代码实现
import hashlib
from PySide6.QtWidgets import QApplication, QLabel, QLineEdit, QMainWindow, QVBoxLayout, QWidget
class InputToLabel(QMainWindow):
def __init__(self):
super().__init__()
self.input = QLineEdit()
self.label_content = QLabel()
self.label_parse_ret = QLabel()
self.input.textChanged.connect(self.hash_test)
self.input.textChanged.connect(self.parse_test)
layout_1 = QVBoxLayout()
layout_1.addWidget(self.input)
layout_1.addWidget(self.label_content)
layout_1.addWidget(self.label_parse_ret)
container = QWidget()
container.setLayout(layout_1)
self.setCentralWidget(container)
def parse_test(self, data: str):
self.label_parse_ret.setText('字符个数:{},字节长度:{}'.format(
len(data),
len(data.encode('utf-8'))
def hash_test(self, data: str):
self.label_content.setText(
hashlib.sha256(data.encode('utf-8')).hexdigest()