我有一本包含大约 25 个键和值的字典。这些键中的每一个都将成为一个按钮。是否有一种动态方法可以使每个键成为按钮,而不是为每个单独的键输入代码?类似于以下内容:
for key in dict:
...
QtGui.QPushButton(key, self)
...
我知道会有更多的代码。我只是想知道这样的事情是否比单独输入每一个更容易。提前感谢您的帮助。
我有一本包含大约 25 个键和值的字典。这些键中的每一个都将成为一个按钮。是否有一种动态方法可以使每个键成为按钮,而不是为每个单独的键输入代码?类似于以下内容:
for key in dict:
...
QtGui.QPushButton(key, self)
...
我知道会有更多的代码。我只是想知道这样的事情是否比单独输入每一个更容易。提前感谢您的帮助。
当然试试这个:
from PyQt4 import QtGui, QtCore
from functools import partial
class Window(QtGui.QWidget):
def __init__(self, mapping):
QtGui.QWidget.__init__(self)
layout = QtGui.QVBoxLayout(self)
self.buttons = []
for key, value in mapping.items():
self.buttons.append(QtGui.QPushButton(key, self))
self.buttons[-1].clicked.connect(partial(handleButton, data=value))
layout.addWidget(self.buttons[-1])
def handleButton(self, data="\n"):
print (data)
if __name__ == '__main__':
import sys
buttons = {'foo': 'bar', 'something': 'other'}
app = QtGui.QApplication(sys.argv)
window = Window(buttons)
window.show()
sys.exit(app.exec_())