Я новичок и пытаюсь использовать свое первое приложение. пытаясь сделать комбинированный вид калькулятора для отображения различных комбинаций из 2 введенных пользователем продуктов питания (a и b) в течение 6 групп продуктов. пытаясь собрать его вместе, я столкнулся с проблемой. Я использую qt designer и python.
вот мой частичный код, с которым у меня возникают проблемы:
def addItem(self):
a = self.lineEdit.text()
b = self.lineEdit2.text()
value = [a, b]
self.lineEdit.clear()
self.lineEdit2.clear()
self.textBrowser.append(value)
при нажатии моего addBtn из двух отдельных полей lineEdit, он должен поместить эти два в список, установленный в textBrowser. Я надеюсь, что браузер выглядит так:
[item1, item3]
[item5, item6]
[item4, item7]
[item2, item9]
[item11, item 8]
item10, item12]
Вместо этого я получаю: TypeError: append (self, str): аргумент 1 имеет неожиданный тип 'list'
Я обыскал и нашел похожие ситуации, но никто не имел дело со списками. Пожалуйста, помоги, если можешь. Было бы очень благодарно.
* Обратите внимание, что следующий код работал перед попыткой сделать его списком.
def addItem(self):
value = self.lineEdit.text()
self.lineEdit.clear()
self.textBrowser.append(value)
этот код работает, но отображается в браузере следующим образом:
item1
item2
item3
item4
item5
item6
item7
item8
item9
item10
item11
item12
Текстовый браузер требует, чтобы значение, установленное или добавленное к нему, было строкой. Вам нужно построить нужную строку. Вот несколько вариантов:
value_str = str([a, b]) # type casting, might work for small lists
value_str = '[' + a + ',' + b + ']' # string concatenation
value_str = '[{}, {}]'.format(a, b) # one of python 3 string interpolation methods
value_str = f'[{a},{b}]' # f-string, python 3.6+
См. Здесь дополнительные советы по str.format: https://pyformat.info/, хотя вы должны полностью использовать f-строки для личных проектов, если это возможно.
Удачи в создании своего приложения!