Вызовите функцию, когда флажок установлен - PullRequest
0 голосов
/ 20 марта 2019

Я хочу, чтобы, когда я изменил редактирование строки, была вызвана другая функция, и в этой функции есть if-else с Qt.Checked.Когда я редактирую строку-редактирование и затем устанавливаю флажок, текст из строки-редактирования записывается в переменную.Но затем, когда я снова изменяю строку-редактирование, он просто запускает else в функции изменения, даже если флажок установлен.Я не понимаю, почему.

Флажок:

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

LineEdit:

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")

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 20 марта 2019
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")
...