为什么我不能在qt designer中向textBrowser添加列表?

2024-10-02 02:31:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我是个新手,正在尝试我的第一个应用程序。尝试做一个组合计算器,用于显示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)

当在两个单独的行编辑框中按my addBtn时,它应该将这两个按钮放在文本浏览器的列表集中。我希望浏览器看起来像这样:

[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

Tags: 代码textself列表valuedef浏览器食物
1条回答
网友
1楼 · 发布于 2024-10-02 02:31:25

文本浏览器要求设置的值或附加的值为字符串。您需要构造所需的字符串。以下是一些选项:

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字符串

祝你的应用程序开发愉快

相关问题 更多 >

    热门问题