通常,您不需要保留对按钮的本地引用。在这种情况下,您可以安全地忘记它们,只要它们有一个负责销毁它们的父小部件。在
使用^{}及其全局信号^{}也有助于以通用方式管理一组按钮。但是您也可以使用^{}将每个按钮连接到一个插槽,以传输一个用户定义的数据,该数据将帮助您识别哪个按钮生成了回调。在import sys
import string
from PyQt5 import QtWidgets, QtCore
class Window(QtWidgets.QDialog):
def __init__(self):
super().__init__()
self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
self.letters = list(string.ascii_lowercase)
self.lay = QtWidgets.QVBoxLayout(self)
self.group = QtWidgets.QButtonGroup()
# Create all the buttons
for letter in self.letters:
btn = QtWidgets.QRadioButton(letter, self)
# In case you want to find it back later using findChild
btn.setObjectName("btn_"+letter)
self.group.addButton(btn)
self.lay.addWidget(btn)
self.group.buttonClicked.connect(self.btnCliked)
def btnCliked(self, btn):
# Do something with the button
print(btn.text())
def main():
qApp = QtWidgets.QApplication(sys.argv)
win = Window()
win.show()
sys.exit(qApp.exec_())
if __name__ == '__main__':
main()
以partial为例:
^{pr2}$