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())
程序运行效果

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