почему я не могу добавить список в textBrowser в Qt Designer?

1

Я новичок и пытаюсь использовать свое первое приложение. пытаясь сделать комбинированный вид калькулятора для отображения различных комбинаций из 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
Теги:

1 ответ

0
Лучший ответ

Текстовый браузер требует, чтобы значение, установленное или добавленное к нему, было строкой. Вам нужно построить нужную строку. Вот несколько вариантов:

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-строки для личных проектов, если это возможно.

Удачи в создании своего приложения!

  • 0
    большое спасибо. ты обалденный! работал отлично. У меня есть 3,6 и 3,5, но я не уверен, что мне придется использовать 3,5, поэтому я использовал третий вариант. еще раз спасибо! у вас не было бы никаких идей о возможных комбинациях? пришлось спросить. Вы, кажется, знаете, что делаете. лол. еще раз спасибо.
  • 0
    из itertools импортный товар. Затем для a, b в продукте (food_group1, food_group2): выведите (a, b).
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню