pycharm-qt5&6&pyside-常用控件


本文仅介绍常用控件及控件函数等

一:文本型控件

1> QLabel 标签控件

显示静态文本、富文本、图像以及动画

1. 基本概念

标签:一种用户界面元素,用于显示文本或图像。
文本标签:显示纯文本或富文本(支持HTML)。
图像标签:显示图像。
动画标签:显示动画(如GIF

2. 文本

简单文本
import sys
from PySide6.QtWidgets import QApplication, QLabel, QWidget

class QLabelWidget(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)

        self.resize(200, 200)
        # 创建一个QLabel实例
        self.label = QLabel("raw text", self)
        self.label.setText('Hello, PySide6!')  # 设置文本, 由 raw text -> Hello, PySide6!
        print(self.label.text())  # 获取label文本
 
 if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = QLabelWidget()
    window.show()
    sys.exit(app.exec())
 ======================
 self.label.setText('Hello, PySide6!')  # 设置文本, 由 raw text -> Hello, PySide6!
 print(self.label.text())  # 获取label文本
富文本
import sys
from PySide6.QtWidgets import QApplication, QLabel, QWidget

class QLabelWidget(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)

        self.resize(200, 200)
        # 创建一个QLabel实例
        self.label = QLabel("raw text", self)
        self.label.setText(
            "<html><body>我的博客 <a href='https://mp.youkuaiyun.com/'>优快云-45度看我</a><b>公众号 </b> <i>demo</i></body></html>")
        self.label.setGeometry(20, 20, 160, 70)
        self.label.setWordWrap(True)  # 设置自动换行
        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = QLabelWidget()
    window.show()
    sys.exit(app.exec())

在这里插入图片描述

3. 显示图像

图片加载
from PySide6.QtGui import QPixmap, QFont
import sys
from PySide6.QtWidgets import QApplication, QLabel, QWidget
from PySide6.QtCore import Qt

class QLabelWidget(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)

        self.resize(200, 200)
        # 创建一个QLabel实例
        self.label = QLabel("raw text", self)
        self.label.setText('Hello, PySide6!')  # 设置文本, 由 raw text -> Hello, PySide6!
        # 自适应
        self.label.setGeometry(0,0,200,200)  # 固定大小和位置
        self.label.setPixmap(QPixmap(r'F:\PySide_QT6\resources\ui\desktop_icon.ico'))
        self.label.setScaledContents(True)
        # 缩放模式
        pixmap = QPixmap(r'F:\PySide_QT6\resources\ui\desktop_icon.ico')
        self.label.setPixmap(pixmap.scaled(200, 200))
 if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = QLabelWidget()
    window.show()
    sys.exit(app.exec()
 ===================================================
  #1 自适应
  #2 缩放模式
  

在这里插入图片描述

动图加载
import sys
from PySide6.QtWidgets import QApplication, QLabel, QWidget
from PySide6.QtGui import QMovie

class QLabelWidget(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)

        self.resize(200, 200)
        # 创建一个QLabel实例
        self.label = QLabel("raw text", self)
        self.label.setText('Hello, PySide6!')  # 设置文本, 由 raw text -> Hello, PySide6!
        movie = QMovie(r'F:\DeskTop\095de42c41b64297b2f74986c14d4296.gif')
        movie.setSpeed(200)  # 2倍速  默认100(1倍)
        self.label.setMovie(movie)
        movie.start()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = QLabelWidget()
    window.show()
    sys.exit(app.exec())

在这里插入图片描述

4. QSS美化

import sys
from PySide6.QtWidgets import QApplication, QLabel, QWidget
from PySide6.QtCore import Qt

class QLabelWidget(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)

        self.resize(200, 200)
        # 创建一个QLabel实例
        self.label = QLabel("raw text", self)
        self.label.setText('Hello, PySide6!')  # 设置文本, 由 raw text -> Hello, PySide6!
        # 设置样式
        self.label.setStyleSheet("""
                   QLabel {
                       color: #000000;  /* 设置文字颜色 */
                       background-color: yellow;  /* 设置背景颜色 */
                       border: 1px solid black;  /* 添加边框 */
                       border-radius: 10px;  /* 添加圆角边框 */
                       font-size: 20px;  /* 设置字体大小 */
                       font-weight: bold;  /* 设置字体加粗 */
                       font-style: italic;  /* 设置字体斜体 */
                       font-family: "Arial";  /* 设置字体 */
                       text-decoration: underline;  /* 设置文本下划线 */
                       margin: 5px;  /* 添加外边距 */
                       padding: 5px;  /* 添加内边距 */

                       }
                   QLabel:hover {
                       background-color: lightblue;  /* 设置鼠标悬停时的背景颜色 */
                       color: white;  /* 设置鼠标悬停时的文字颜色 */
                   }
               """
                                 )

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = QLabelWidget()
    window.show()
    sys.exit(app.exec())

在这里插入图片描述

5. 事件响应

import sys

from PySide6.QtCore import Qt
from PySide6.QtWidgets import QApplication, QLabel, QMainWindow, QTextEdit


class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.label = QLabel("Click in this window")
        self.setCentralWidget(self.label)
        self.setMouseTracking(True) # 调用 self.setMouseTracking(Ture) 来解除这种状态

    def mouseMoveEvent(self, e):
        self.label.setText("mouseMoveEvent")

    def mousePressEvent(self, e):
        if e.button() == Qt.MouseButton.LeftButton:
            print('Qt.MouseButton.LeftButton')
        elif e.button() == Qt.MouseButton.RightButton:
            print('Qt.MouseButton.RightButton')
        elif e.button() == Qt.MouseButton.MiddleButton:
            print('Qt.MouseButton.MiddleButton')

    def mouseReleaseEvent(self, e):
        self.label.setText("mouseReleaseEvent")

    def mouseDoubleClickEvent(self, e):
        self.label.setText("mouseDoubleClickEvent")

    def keyPressEvent(self, e):
        print(e.enum)
        if e.enum == Qt.Key.Key_0:
            print('press keyborad number 0')

    def wheelEvent(self, e):
        super(MainWindow, self).wheelEvent(e)
        print("滚轮滚动了")

    def keyPressEvent(self, e):
        super(MainWindow, self).keyPressEvent(e)
        # 如果点击esc键,关闭窗口
        if e.key() == (int('0x1000005', 16)-1):
            print('按下enter按键')

app = QApplication(sys.argv)

window = MainWindow()
window.show()

app.exec()
==================================
mouse** 鼠标事件触发
wheelEvent** 滚轮滚动触发
key** 键盘按下触发

2> QlineEdit 单行文本窗

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

45度看我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值