选中复选框时调用功能

问题描述 投票:0回答:1

我希望当我更改一个行编辑时,另一个函数被调用,并且在该函数中有一个带有Qt.Checked的if-else。当我编辑行编辑然后选中复选框时,行编辑中的文本将写入变量。但是当我再次更改行编辑时,它只是在更改函数中运行else,即使选中了复选框也是如此。我不明白为什么。

复选框:

self.filenamecheck.stateChanged.connect(self.changeFileName)

QLineEdit的:

self.nameLine.textEdited.connect(self.onChangeNameLine)

功能:

def onChangeNameLine(self,state):
    self.changeFileName(self)
    print("Filename changed")

def changeFileName(self, state):
    name = self.nameLine.text()
    print("Called change function")
    if state == Qt.Checked:
        self.filenameLine.setText(name)
        print("called change if")
    else:
        self.filenameLine.setText('')
        print("called change else")

谢谢你的帮助!

python pyqt signals-slots qcheckbox
1个回答
0
投票
def onChangeNameLine(self):
    self.changeFileName()
    print("Filename changed")

def changeFileName(self):
    name = self.nameLine.text()
    print("Called change function")
    if self.filenamecheck.isChecked():
        self.filenameLine.setText(name)
        print("called change if")
    else:
        self.filenameLine.setText('')
        print("called change else")
© www.soinside.com 2019 - 2024. All rights reserved.