PyQt5: Как отобразить список в QMessageBox?Ошибка типа: аргумент 3 имеет непредвиденный тип «список» - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь отобразить список в QMessageBox. Я получаю сообщение об ошибке:

TypeError: question (QWidget, str, str, button: Union [QMessageBox.StandardButtons, QMessageBox.StandardButton]= QMessageBox.StandardButtons (QMessageBox.Yes | QMessageBox.No), defaultButton: QMessageBox.StandardButton = QMessageBox.NoButton): аргумент 3 имеет неожиданный тип 'list'

Вот код:1008 *

enter image description here Введите в поле следующие строки:

abc
xabcx
def
zabc
ghi
ooabc
abccc

Я хочу отфильтровать список выше, чтобы отображались только слова, содержащие 'abc', результат будет:

abc
xabcx
zabc
ooabc
abccc

Я уже написал код в файле Python выше следующим образом:

textboxValue = self.textbox.text()
            xlist = textboxValue.splitlines()
            xlist_final=[]
            for xitem in xlist:
                if xitem.find("abc") != -1:
                    xlist_final.append(xitem)

проблема в том, как отобразить его на Qmessagebox, чтобы он содержал список, спасибо за вашпомощь

1 Ответ

0 голосов
/ 06 июня 2018

Возможным решением является объединение строк с \n с использованием join(), как показано ниже:

@pyqtSlot()
def on_click(self):
    textboxValue = self.textbox.text()
    xlist = textboxValue.splitlines()
    xlist_final = [xitem for xitem in xlist if xitem.find("abc") != -1]
    QMessageBox.question(self, 'List manipulation', "\n".join(xlist_final), QMessageBox.Ok, QMessageBox.Ok)
    self.textbox.clear()

enter image description here

...