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

分类: 计算机技术
推荐阅读:
Python内置函数大全 该文档详细讲解了几乎所有的Python内置函数,并提供了相关示例;
Matlab中如何表示无穷大 在MATLAB中,您可以使用关键字inf(不区分大小写)来表示正无穷大,-inf表示负无穷大。
Python globals()函数 globals() 是 Python 内置函数之一,用于返回当前全局作用域中所有变量的字典。这个字典包含了所有已定义的全局变量,键为变量名,值为对应的值。可以通过修改这个字典中的变量来更新全局作用域中的变量。
Python实现列表去重的多种方法及性能对比 本文将通过多种方法实现列表(List)去重(将列表中的重复项删除);其中包括使用常规方法去重、set()集和去重、使用enumerate()去重、和使用collections.OrderedDict.fromkeys()实现去重;并编写了测试代码来测试这些去重方法的性能、以及去重后元素的排序是否改变;
Qt在Windows11下的视觉效果 作者更新到Windows11了,来看看Qt在Windows11下的视觉效果;变化比较明显的是窗口,PushButton控件和输入框控件;
Python float()函数 在 Python 中,float()是一个内置函数,用于将字符串、整数或其他数字类型转换为浮点数类型。