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

分类: 计算机技术
推荐阅读:
PySide6 style()函数详细教程 Pyside6.QtWidgets.QApplication类的成员函数style()用于返回程序当前使用的style对象;
Rust实现字符串MD5加密 本文将使用Rust语言rust-crypto库实现字符串的MD5加密;
function main is undeclared in the main package解决办法 这是一个Golang新手可能会碰到的低级错误,它表明你的main包中不包含main()函数;
rand()和srand()函数在C语言中的应用 本文通过示例介绍rand()函数和srand()函数在C语言中的用法;
Golang中=和:=的区别 在Golang中,=是赋值运算符,而 :=是声明赋值运算符;使用=进行赋值前,其变量需要已被声明,而使用 := ,变量不需要被声明,且能自动识别被赋值的数据类型;
Rust获取目录下的所有文件名 在 Rust 中,要获取一个目录下的所有文件名,您可以使用标准库中的 std::fs 模块来进行文件系统操作。