PySide6 动态创建按钮数组

动态创建按钮数组在许多场合非常有用,特别是当你需要根据用户输入、数据量或其它条件来生成界面元素时;

本篇将演示如何使用PySide6来动态的创建按钮数组,并正确响应对应按钮的点击信号;

示例代码

import sys
from PySide6.QtCore import Slot
from PySide6.QtWidgets import (QApplication, QWidget, 
    QPushButton, QStyleFactory,QVBoxLayout)

class MainWidget(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.resize(300, 200)
        self.setWindowTitle("动态创建QPushButton数组")

        self.buttons = []

        layout = QVBoxLayout()
        for i in range(5):
            button = QPushButton(f"Button {i}")
            button.clicked.connect(self.buttonClicked)
            self.buttons.append(button)
            layout.addWidget(button)

        self.setLayout(layout)

    @Slot()
    def buttonClicked(self):
        button = self.sender()
        index = self.buttons.index(button)
        print(f"第{index}个按钮被点击")

if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setStyle(QStyleFactory.create("Fusion"))
    window = MainWidget()
    window.show()
    sys.exit(app.exec())

程序运行效果

pyside6动态创建按钮

这段代码中,创建了5个按钮,这些按钮的clicked信号连接到同一个槽函数,并将按钮的实例对象保存到数组中;当按钮被点击时,可通过self.sender()方法获取发送该信号的信号源,即发出该信号的对象,这样就能知道哪个按钮被点击;

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/pyside6-widgets/qpushbutton-array.html

分类: 计算机技术
推荐阅读:
C/C++程序打印输出中文导致乱码的解决方法 C/C++程序打印输出中文导致乱码的解决方法如下:
Rust 宏编程 Rust 的宏编程是一种强大的元编程技术,允许您在编译时生成代码,创建自定义语法,以及进行各种代码转换。在 Rust 中,标准宏是内置于 Rust 标准库中的宏。这些宏是 Rust 语言提供的一部分,可直接在任何 Rust 代码中使用,无需额外的导入或引入其他依赖。
编程中foo、bar、baz的含义 在编程中,foo、bar和baz通常被用作示例变量名。它们是一种惯用的命名习惯,通常被用于示例代码或临时代码片段中,表示没有特定含义的变量名或函数名。
配置Nginx实现简单的反盗链 本文通过Nginx的配置指令valid_referers来实现简单的图片和其它类型文件的防盗链。
Python 生成UUID 在Python中,可以使用uuid模块生成UUID。默认情况下,uuid.uuid4()函数会生成一个随机UUID。
Python使用蒙特卡洛法计算圆周率 蒙特卡洛方法通过在单位正方形内随机生成点,并判断这些点是否在单位圆内的比例来估算圆周率。当随机点数量越多时,估算值越趋近于真实值。