所有
当我点击mk_btn
金额为cnt时,我只想留空。所以我使用self.resultTable.setRowCount(cnt)
然后如果我cliked cs_btn,我想使用名称为get_in的函数。 get_in需要cnt。
但self.cs_btn.clicked.connect(self.get_in(cnt))
不接受cnt。
我该如何解决?
请帮帮我。
class MyWindow(QMainWindow, form_class):
def __init__(self):
super().__init__()
self.setupUi(self)
self.kiwoom = Kiwoom()
self.kiwoom.commConnect()
self.mk_btn.clicked.connect(self.makelist)
self.cs_btn.clicked.connect(self.get_in(cnt))
def makelist(self):
self.kiwoom.getConditionLoad()
self.kiwoom.sendCondition("0154", self.kiwoom.condition[0], 0, 1)
cnt = len(self.kiwoom.cl)
self.resultTable.setRowCount(cnt)
return cnt
def get_in(self, cnt):
print(cnt)
for i in range(cnt):
self.kiwoom.dynamicCall("SetInputValue(QString, QString)", "종목코드", self.kiwoom.cl[i])
self.kiwoom.dynamicCall("CommRqData(QString, QString, int, QString)", "주식기본정보요청", "opt10001", 0, "0101")
print(self.kiwoom.name2)
"""
self.resultTable.setItem(i, 0, QTableWidgetItem(self.kiwoom.cl[i]))
self.resultTable.setItem(i, 1, QTableWidgetItem(self.kiwoom.name2))
self.resultTable.setItem(i, 3, QTableWidgetItem(self.kiwoom.per2))
self.resultTable.setItem(i, 4, QTableWidgetItem(self.kiwoom.pbr2))
"""
time.sleep(0.5)
答案 0 :(得分:1)
变量cnt
是本地的,因此它只存在于该上下文中,如果您希望能够被另一个方法访问,则必须创建存储该信息的类的成员,因为它的存在一直持续到对象被释放。在你的情况下:
class MyWindow(QMainWindow, form_class):
def __init__(self):
super().__init__()
self.setupUi(self)
self.cnt = 0
self.kiwoom = Kiwoom()
self.kiwoom.commConnect()
self.mk_btn.clicked.connect(self.makelist)
self.cs_btn.clicked.connect(self.get_in)
def makelist(self):
self.kiwoom.getConditionLoad()
self.kiwoom.sendCondition("0154", self.kiwoom.condition[0], 0, 1)
self.cnt = len(self.kiwoom.cl)
self.resultTable.setRowCount(self.cnt)
def get_in(sel):
print(self.cnt)
for i in range(self.cnt):
[...]