Как я могу использовать кнопку экземпляра, который я строю динамически в классе - PullRequest
0 голосов
/ 06 марта 2020

этот скрипт используется для создания кнопки на основе ключей dict, и dict неизвестен до вызова. Но мне нужно использовать кнопку после того, как экземпляр класса. Так как я могу это сделать?

from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.Qt import *
import sys
##build a class
class Ui_Dialog(QDialog):
    def __init__(self, graph_obj=None):
        super(Ui_Dialog, self).__init__()
        self.resize(1000, 800)
        self.setObjectName("run dialog")
        self.gridLayout = QGridLayout(self)
        self.gridLayout.setContentsMargins(20, 20, 20, 20)
        self.gridLayout.setObjectName("gridLayout")

        for node in iter(graph_obj.keys()):##this keys is not known in every call
            self.button = QPushButton()
            self.button.setText(str(node))
            self.button.setObjectName(node)
            self.gridLayout.addWidget(self.button)
        self.setLayout(self.gridLayout)


if __name__ == '__main__':

    app = QApplication(sys.argv)
    targets_graph = {'a': "some contents", 'b': "some other contents"}  ##this dict often changed
    dialog = Ui_Dialog(graph_obj=targets_graph)

    ##I want to build some tasks for the "a button and b button", how can I get the button?
    dialog.show()
    sys.exit(app.exec_())
...