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将任意维度的不规则列表展平成一维列表;
Rust获取命令行参数 所谓的命令行参数,是指程序在命令行或SHELL上运行时后跟的参数;Rust语言中获取命令行参数的方法如下:
Rust:variable does not need to be mutable警告解决方法 在Rust中,当你使用了mut关键字声明变量,但你后面的代码并没对该关键字进行修改,则rust编译器会产生 variable does not need to be mutable 的警告提示;
使用PySide6创建Hello World程序 本文将展示PySide6的hello world程序;程序将创建一个主窗体,在窗体上创建一个按钮,点击按钮将弹出Hello world的消息;
Rust语言逐行读取文本文件 这是一个使用Rust语言逐行读取文本文件的例子;
Rust loop循环详细用法 当需要多次执行同一段代码时,循环就能很好的解决问题;Rust语言中支持多种循环,本文将介绍 loop 循环;