2

我有一本包含大约 25 个键和值的字典。这些键中的每一个都将成为一个按钮。是否有一种动态方法可以使每个键成为按钮,而不是为每个单独的键输入代码?类似于以下内容:

for key in dict:
     ...
     QtGui.QPushButton(key, self)
     ...

我知道会有更多的代码。我只是想知道这样的事情是否比单独输入每一个更容易。提前感谢您的帮助。

4

1 回答 1

3

当然试试这个:

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_())
于 2013-07-02T12:29:03.503 回答