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

Adding items (strings) from a list to a QListWidget

首先,我的UI是这样的:

嗯!我做了一个“代码生成器”。我有一个空白的 QListWidget,我想要代码这些代码将使用 'Create' 按钮制作。到目前为止,我一直在测试 脚本,查看要在终端上打印的代码。现在,我想在 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... 如何?

My QListWidget script is this:

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 在您单击 'Create' 按钮时准确更新。

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

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

The finally script is:

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)

My finally QListWidget script is:

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)