将列表中的项目(字符串)添加到 QListWidget

时间:2021-07-03 15:44:15

标签: python python-3.x list pyqt5 qlistwidget

首先,我的用户界面是这样的:

enter image description here

好吧!我做了一个“代码生成器”。我有一个空白的 QListWidget,我想要代码这些代码将使用“创建”按钮制作。到目前为止,我一直在测试脚本,看到要打印在终端上的代码。现在,我想在 QListWidget 中看到它们。因此,当我点击按钮时,QListWidget中会出现一个新的代码。首先,代码以这种方式转到 Codes_list = []

class Ui_MainWindow_2_1(object):
    def __init__(self):
        self.Codes_list = []

    def Code_maker(self):
        import random
        chars= "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!$%&*#/\?[]{}-_"
        for x in range(self.HowMany_SpinBox.value()):
            password = ""
            for y in range(0, 10):
                password_char = random.choice(chars)
                password += password_char
            print(password)
            self.Codes_list.append(password)

    def setupUi(self, MainWindow_2_1):
    # Some code later...
    self.CreateButton.clicked.connect(self.Code_maker)

例如,Codes_list 可以包含以下代码:["rdt5u\&/EQ", "BJnV?zNOXn", "TnRZEMjbd6", "}?TF/hmTDF", "y9D1-Cl-Hk"]。现在,从这里开始,代码应该转移到 QListWidget...如何?

<块引用>

我的 QListWidget 脚本是这样的:

class Ui_MainWindow_2_1(object):
    # Some code later...

    def setupUi(self, MainWindow_2_1):
        # Some code later...
        self.Codes_listWidget = QtWidgets.QListWidget(self.background)
        self.Codes_listWidget.setGeometry(QtCore.QRect(20, 120, 231, 161))
        self.Codes_listWidget.setStyleSheet("background-color: none;\nborder-radius: 10px;")
        self.Codes_listWidget.setObjectName("Codes_listWidget")
        item = QtWidgets.QListWidgetItem()
        font = QtGui.QFont()
        font.setFamily("Microsoft YaHei UI")
        font.setWeight(50)
        item.setFont(font)
        self.Codes_listWidget.addItems(self.Codes_list)

我希望 QListWidget 在您单击“创建”按钮时准确更新。

Code_maker 上的密码将永远留在那里。

1 个答案:

答案 0 :(得分:0)

我的问题在我的问题的评论中解决了!我在 self.Codes_listWidget.addItem(password) 之后添加 self.Codes_list.append(password)。谢谢@musicamante!!!

<块引用>

最后的脚本是:

class Ui_MainWindow_2_1(object):
    def __init__(self):
        self.Codes_list = []

    def Code_maker(self):
        import random
        chars= "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!$%&*#/\?[]{}-_"
        for x in range(self.HowMany_SpinBox.value()):
            password = ""
            for y in range(0, 10):
                password_char = random.choice(chars)
                password += password_char
            print(password)
            self.Codes_list.append(password)
            self.Codes_listWidget.addItem(password)

    def setupUi(self, MainWindow_2_1):
    # Some code later...
    self.CreateButton.clicked.connect(self.Code_maker)
<块引用>

我最后的 QListWidget 脚本是:

class Ui_MainWindow_2_1(object):
    # Some code later...

    def setupUi(self, MainWindow_2_1):
        # Some code later...
        self.Codes_listWidget = QtWidgets.QListWidget(self.background)
        self.Codes_listWidget.setGeometry(QtCore.QRect(20, 120, 231, 161))
        self.Codes_listWidget.setStyleSheet("background-color: none;\nborder-radius: 10px;")
        self.Codes_listWidget.setObjectName("Codes_listWidget")
        item = QtWidgets.QListWidgetItem()
        font = QtGui.QFont()
        font.setFamily("Microsoft YaHei UI")
        font.setWeight(50)
        item.setFont(font)