Qt5中定义一个成员变量,循环调用一个函数,使用该成员变量新建多个按钮对象,怎么把这些按钮对象分别和同一个槽函数连接
时间: 2024-02-11 17:06:30 浏览: 82
Qt5的多线程小程序,实现按钮开关线程
在 Qt5 中,我们可以在类中定义成员变量,然后在需要的地方使用它们。你可以定义一个成员变量来存储按钮对象的列表,然后在一个循环中使用它来创建多个按钮对象,并将它们分别连接到同一个槽函数。下面是一个示例代码:
```python
class MyWidget(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.buttons = []
self.setupUi()
def setupUi(self):
layout = QtWidgets.QVBoxLayout(self)
for i in range(10):
button = QtWidgets.QPushButton("Button {}".format(i))
layout.addWidget(button)
button.clicked.connect(lambda checked, index=i: self.onButtonClicked(index))
self.buttons.append(button)
def onButtonClicked(self, index):
print("Button {} clicked".format(index))
```
在这个示例代码中,我们在类中定义了成员变量 `buttons`,它是一个列表,用于存储按钮对象。在 `setupUi` 函数中,我们使用一个循环来创建多个按钮对象,并将它们添加到垂直布局中。然后,我们使用 lambda 表达式将每个按钮对象连接到同一个槽函数 `onButtonClicked`,并将它们的索引值作为参数传递给槽函数。最后,我们将每个按钮对象添加到成员变量 `buttons` 中,以便在需要时可以访问它们。在槽函数 `onButtonClicked` 中,我们打印出被点击的按钮的索引值。
这样,你就可以定义一个成员变量来存储按钮对象,并在循环中使用它来创建多个按钮对象,并将它们分别连接到同一个槽函数。
阅读全文