当前位置: 首页 > news >正文

pycharm-qt56pyside-常用控件

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

  • 一:文本型控件
    • 1> QLabel 标签控件
      • 1. 基本概念
      • 2. 文本
        • 简单文本
        • 富文本
      • 3. 显示图像
        • 图片加载
        • 动图加载
      • 4. QSS美化
      • 5. 事件响应
    • 2> QlineEdit 单行文本窗

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

一:文本型控件

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.csdn.net/'>CSDN-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 单行文本窗

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.com/a/101412.html

相关文章:

  • Dubbo 框架内置的并发控制策略
  • Maven:Java项目构建与依赖管理工具
  • 解释Node.js,Node.js环境
  • 数据结构每日一题day7(顺序表)★★★★★
  • WEB安全--RCE--RCE的绕过
  • 网络深处的守门人
  • 马达加斯加企鹅字幕
  • 网站安全专栏-------DDOS常见的解决办法和防范措施
  • Vue 3 模板引用(Template Refs)详解与实战示例
  • Redis-06.Redis常用命令-列表操作命令
  • Zookeeper中的Zxid是如何设计的
  • leetcode144.二叉树展开为链表
  • Linux SCP传输文件免密配置
  • 硕士毕设-语义分割-4-通过grounding-sam生成效果很好的pesudo
  • 【图论】最短路径问题总结
  • 伴伴租赁系统-物品售卖-二手回收-物品租赁-支持微信/支付宝小程序/app/h5
  • 通过Spring Boot集成WebSocket进行消息通信
  • Java开发者指南:深入理解HotStuff新型共识算法
  • 图文档的安全管理软件有哪些?
  • pyproj 库中 Geod 类讲解
  • RK3568使用gpio子系统完成led驱动程序编写
  • f103.delay,teitou
  • docker-compose部署prometheus+grafana+node_exporter+alertmanager规则+邮件告警
  • DevOps部署平台
  • 【数论2】
  • 【ArcGIS操作】ArcGIS 进行空间聚类分析
  • 全星研发管理APQP软件系统:驱动汽车产品研发全周期,打造高效合规的质量管理引擎
  • TDengine 中的关联查询
  • Java康威生命游戏(Conway‘s Game of Life)
  • opencv图像处理之指纹识别