我是新手,正在尝试我的第一个应用程序。尝试做一种组合类型的计算器,以显示整个6个食物组中2个用户输入的食物项目(a和b)的不同组合。在尝试将其整合在一起时,我遇到了一个问题。我正在使用qt设计器和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)
当从两个单独的lineEdit框中按下我的addBtn时,应该将两者放在textBrowser中的列表集中。我希望浏览器看起来像这样:
[item1, item3]
[item5, item6]
[item4, item7]
[item2, item9]
[item11, item 8]
item10, item12]
相反,我得到: TypeError:append(self,str):参数1具有意外的类型“列表”
我搜索并发现了类似的情况,但是没有一个处理列表。如果可以的话请帮忙。非常感谢。
*请注意,以下代码在尝试将其列为列表之前已经起作用。
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
答案 0 :(得分: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's 3 string interpolation methods
value_str = f'[{a},{b}]' # f-string, python 3.6+
有关str.format的更多提示,请参见此处:https://pyformat.info/,尽管您应该在个人项目中完全使用f字符串。
构建您的应用程序很有趣!