自学内容网 自学内容网

pyqt5-custom-widgets 中文使用文档

目录

前言:

正文:

ToggleSwitch(拨动开关):

参数:

方法:

信号:

StyledButton(风格按钮):

参数:

方法:

ImageBox(图像框):

参数:

方法:

ColorPicker(颜色提取):

DragDropFile(拖放文件框):

信号:

EmbedWindow(对话框窗口):

参数:

属性:

方法:

CodeTextEdit(代码文本编辑器):

方法:

TitleBar(标题栏):

参数:

属性:

方法:

Spinner(旋转视觉组件)

参数:

Toast(通知组件)

参数:

方法:

其他:

RequestHandler(请求处理器):

方法:

信号:

FileDetails(文件详细信息):

属性:

Animation(动画 ):

AnimationHandler(动画处理程序):

ColorPreview(色彩预览):

SyntaxHighlighter(代码高亮 ):


前言:

欢迎阅读PyQt5自定义小部件文档,你可以在pyqt5-custom-widgets中查看showcase.py,以清楚地看到所有部件的演示。 下面是当前实现的小部件列表:

库提供的其他东西,但主要不是部件。有些是工具,数据类等…

安装:

使用PIP安装(根据您的平台,可能是pip3或python3):

python -m pip install pyqt5Custom

 或者

pip install pyqt5Custom

此外,您还可以使用PySide2来代替PyQt5,只需进行一些更改。 

用法示例:

只需导入pyqt5Custom,就可以开始了。你可以看看Examples,一个关于StyledButton小部件的小例子:

from pyqt5Custom import StyledButton

...

btn = StyledButton(text="Hello!")
btn.setStyleDict({
    "border-radius" : 20,
    "font-family" : "Helvetica",
    "font-size" : 17
  })

@btn.clicked.connect
def slot():
  print("Quitting!")
  app.exit()

layout.addWidget(btn)

...
import sys
# 从PyQt5.QtWidgets/QtGui/QtCore,导入所有的类,对象,函数等
# 建议只导入所需的特定类和函数
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from pyqt5Custom import *
# 导入自定义的UI界面类,该类由Qt Designer生成
from Label import Ui_MainWindow
from pyqt5Custom import *
from pyqt5Custom import StyledButton

# 定义一个名为The_xzs的类,它继承自QWidget,是一个基本的窗口组件
class The_xzs(QMainWindow, Ui_MainWindow):
    # 定义The_xzs类的构造函数,它接受一个可选的parent参数,默认为None
    def __init__(self, parent=None):
        # 调用父类QWidget的构造函数,初始化window对象
        super(The_xzs, self).__init__(parent)
        self.setupUi(self)  # 使用自定义UI界面类设置界面

        self.setFixedSize(800, 600);

        # 假设您想要在已有的界面上添加一个新的按钮
        self.btn = StyledButton(text="登录")
        self.btn.setStyleDict({
                "background-color" : (52, 199, 89),
                "border-color" : (2, 199, 89),
                "border-radius" :  39,
                "color" : (255, 255, 255),
                "font-family" : "SF Pro Display",
                "font-size" : 21,
        })
        # 获取中央部件的布局引用,centralWidget(),为对应的页面设置布局
        central_layout = self.centralWidget().layout()
        
        # 如果中央部件没有布局,创建一个新的布局
        if central_layout is None:
            central_layout = QVBoxLayout(self.centralWidget())
            self.centralWidget().setLayout(central_layout)

       
        # 将按钮添加到布局中
        central_layout.addWidget(self.btn,alignment=Qt.AlignHCenter)  
        self.btn.setGeometry(100, 100, 140, 50)
        # 连接点击事件
        self.btn.clicked.connect(self.on_btn_clicked)

    def on_btn_clicked(self):
        print("Button clicked!")  # 按钮点击时执行的操作



# 常用的Python模式,检查当前脚本是否作为主程序运行
# 如果是,就调用main函数
# 创建和运行PyQt5应用程序
if __name__ == '__main__':
    # 创建一个QApplication对象,它是所有PyQt5应用程序的基础,sys.argv包含了命令行参数
    app = QApplication(sys.argv)
    # 创建The_xzs类的实例
    xs = The_xzs()
    # 显示窗口
    xs.show()
    # 启动应用程序的事件循环,app.exec_()会阻塞直到应用程序退出
    # sys.exit用来退出Python解释器,app.exec_()的返回值通常作为退出状态码传递给sys.exit
    sys.exit(app.exec_())

正文:

ToggleSwitch(拨动开关):

ToggleSwitch只是一个看起来很现代的复选框。它有3种样式,分别是win10, ios和android。

参数:
  • text (str) : 显示在开关旁边的文本。

  • style (str) : 部件的样式。“win10”、“ios”或“android”。

  • on (bool) : 开关是否被打开。

方法:
  • isToggled() (bool) : 返回开关状态。

信号:
  • toggled : 当switch的状态发生改变时,就会发出这个信号。

StyledButton(风格按钮):

StyledButton是一个动画按钮。它有两个样式:flat和hyper。

参数:
  • text (str) : 显示在按钮内的文本。

  • style (str) : 部件的样式。 "flat" 或者 "hyper"。

  • icon (str) : 图标的文件路径。可选参数。

  • fixedBottom (bool) : 超样式按钮的底部是否固定。可选参数。

方法:
  • setIcon(filepath) : 更改按钮图标。

  • setDropShadow(bool) : 启用或禁用按钮的投影效果。

ImageBox(图像框):

ImageBox是一个图像或gif动画的容器。

参数:
  • source (str) :源图像/gif的文件路径或URL

  • keepAspectRatio (bool) : 源文件路径或URL保护宽高比。可选参数。

  • smoothScale (bool) : 平滑变换图像。可选参数。

方法:
  • setIcon(filepath) : 更改按钮图标

ColorPicker(颜色提取):

ColorPicker尚未完成。

DragDropFile(拖放文件框):

DragDropFile是一个让用户简单地将文件放入其中,而不是在文件对话框中浏览文件的区域。

信号:
  • fileDropped(file):文件详细信息:该信号在widget上放置文件时发出

EmbedWindow(对话框窗口):

EmbedWindow:是一个对话框窗口,不是弹出式窗口,它嵌入到父组件中。

参数:
  • parent (QWidget) :窗口的父组件。

属性:
  • content (QLayout) : 窗口的布局,您可以在其中添加自己的小部件。

方法:
  • setTitle(title) : 更改窗口标题。

  • setControlsVisible(bool) : 更改控制按钮的可见性。

CodeTextEdit(代码文本编辑器):

CodeTextEdit :只是一个代码编辑器。它是一个语法高亮的多行文本区域,目前只支持少数语言。

方法:
  • setTheme(theme) : 改变语法着色主题。

  • setLang(lang) : 改变语言语法。

  • loadFile(filepath) : 加载文件内容到编辑器。

TitleBar(标题栏):

TitleBar 允许开发人员使用自定义窗口标题栏,这个widget还提供窗口大小调整控件(WIP)

参数:
  • parent (QWidget) : 窗口的父组件。

  • title (str) : 窗口标题(可选)。

属性:
  • closeButton (StyledButton) : 关闭按钮。

  • maxButton (StyledButton) : 最大化按钮。

  • minButton (StyledButton) : 最小化按钮。

方法:
  • setTitle(title) : 改变标题。

  • title() (str) : 获取标题。

Spinner(旋转视觉组件)

Spinner只是一个视觉组件,上面有一个旋转的圆圈。你可以在有图标的部件上使用它作为icon参数。

参数:
  • width (float) : 圆的宽度。

  • color (QColor) : 圆的颜色。

Toast(通知组件)

Toast是出现在窗口底部的通知组件。

参数:
  • parent (QWidget) : 父窗口小部件。

  • text (str) : 部件的文本(可选)。

  • icon (str/Spinner) : widget图标(可选)。

  • closeButton (bool) : 是否显示关闭按钮。

方法:
  • rise(duration: int) : 显示toast通知持续时间为秒。

  • fall() : 隐藏toast通知。

其他:

库提供的其他东西,但主要不是小部件。有些是工具、数据类等等……

RequestHandler(请求处理器):

RequestHandler是一个线程(QThread),可以用来处理HTTP请求,同时避免阻塞Qt的事件循环。你可以在https://github.com/kadir014/pyqt5-custom-widgets/blob/main/examples/中看到这个类的用法。

方法:
  • newRequest(method, url, headers, data)

    • method (str) : 请求方法。

    • url (str) : 发送请求的地址。

    • headers (dict) : 请求头。

    • data (dict) : 请求数据。

信号:
  • requestResponded : 当当前池中的请求得到响应时触发。响应是一个 requests.Response 对象。

FileDetails(文件详细信息):

‘ FileDetails ’对象是一个数据类,它意味着‘ DragDropFile ’用于‘ fileddrop ’信号。

属性:
  • path (str) :文件地址。

  • content (str) : 文件的内容。

  • name (str) : 文件的名字。

  • pureName (str) : 没有扩展名的文件名。

  • extension (str) : 文件的扩展名。

Animation(动画 ):

‘ Animation ’只是一个静态类,它包含了缓和动画功能。当我重新制作动画时,这个类很可能会被弃用。

AnimationHandler(动画处理程序):

‘ AnimationHandler ’使用‘ Animation ’类的函数来动画小部件的属性。当我重新制作动画时,这个类很可能会被弃用。

ColorPreview(色彩预览):

“ColorPreview”是一个显示一些颜色的小部件。它可以在ColorPicker示例旁边看到。但是这个小部件很可能会被弃用。

SyntaxHighlighter(代码高亮 ):

‘ SyntaxHighlighter ’继承‘ QSyntaxHighlighter ’,它的唯一目的是服务‘ CodeTextEdit ’小部件。‘ pyqt5Custom ’模块目前仅支持Python和c++语法高亮显示。


原文地址:https://blog.csdn.net/The_xz/article/details/144331594

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!