传递currentTextChanged的值

2024-09-26 22:10:30 发布

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

下面是一段代码

当前comboboxself.Cbox.btn.clicked.connect(self.Goto_Analyze)管理

我想避免使用btn并使用currentTextChanged,但是无论我把它放在哪里,我都会得到一个错误

    self.MyCbox = QtWidgets.QComboBox(self.My_tab)
    self.MyCbox.setGeometry(QtCore.QRect(700, 30, 100, 21))
    self.MyCbox.setObjectName("MyCbox")
    self.MyCbox.addItems(Functions.nbr)
    
    aa  = str(self.MyCbox.currentText())
    print(aa) # aa = 6
    self.Cbox.btnsetText(_translate("Library_main", "Select"))
    self.Cbox.btnclicked.connect(self.Goto_Analyze)
    


def Goto_Analyze(self, ): 
        aa = str(self.MyCbox.currentTextChanged())
        [...]
        some code


File "../index.py", line 796, in Goto_Analyze
aa = str(self.MyCbox.currentTextChanged())
TypeError: native Qt signal is not callable

Tags: 代码selfconnect错误analyzeaastrgoto
1条回答
网友
1楼 · 发布于 2024-09-26 22:10:30

它是signal,所以您需要

currentTextChanged.connect(...)

就像信号clicked一样,您需要clicked.connect(...)


最小工作代码

from PyQt5 import QtWidgets

class MyWindow(QtWidgets.QWidget):
    
    def __init__(self, parent=None):
        super().__init__(parent)

        
        self.cbox = QtWidgets.QComboBox(self)  # PEP8: `lower_case_name` for variables
        self.cbox.addItems([str(x) for x in range(3)])

        self.cbox.currentTextChanged.connect(self.goto_analyze)

    def goto_analyze(self, value):  # PEP8: `lower_case_name` for functions
        print(type(value), value)

if __name__ == "__main__":
    app = QtWidgets.QApplication([])
    win = MyWindow()
    win.show()
    app.exec()

PEP 8 Style Guide for Python Code

相关问题 更多 >

    热门问题