关于pyqt5关于button.clicked.conn按钮

2024-05-20 03:13:57 发布

您现在位置:Python中文网/ 问答频道 /正文

全部。

我只想在单击^{cd1>}时使其为空,该数量为cnt。所以我使用^{{cd2>}然后如果我cliked cs_ubtn,我想使用名为get_的函数。需要cnt的人。 但是^{cd3>}不要服用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)

Tags: inselfgetinitcldefcsclass
1条回答
网友
1楼 · 发布于 2024-05-20 03:13:57

变量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):
            [...]

相关问题 更多 >