этот скрипт используется для создания кнопки на основе ключей 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_())