用动态列表中的元素填充 QListWidget
Filling a QListWidget with elements from a dynamic list
我在 QtDesigner 中创建了一个 QListWidget
,我想向它添加我之前创建的另一个名为 "list_1" 的列表中的一些项目。问题是,每次我按下组合键时,列表(list_1
)都会更新。
代码如下:
class Win(self):
list_1 = []
number = 0 #This is a variable that is continuously changing
def __init__(self):
#Some stuff in here
def addItem(self):
item = "Number " + str(Win.number)
Win.list_1.append(item)
Win.number += 1
class Dialog(QDialog):
def __init__(self):
QDialog._init__(self):
uic.loadUi("ListWidget.ui", self)
def addItems(self):
#I want to create this method to add the items from list_1 into the `QListWidget`
我怎样才能打开 QDialog
(使用我已有的按钮)并在 QListWidget 中查看附加在列表中的项目。我的意思是,“我打开 QDialog
,我看到数字 1。然后,我关闭 QDialog
,向列表中添加一个数字,当我再次打开 QDialog
时,我可以看到 Number 1
和Number 2
,依此类推。
希望你能帮助我。
如果您不打算使用 Model/View 架构,您有两个选择。
1。 Build/refresh 每次显示 QListWidget。
除非您有数千个项目或对每个项目都有复杂的自定义绘画,否则这会非常快。
class Dialog(QDialog):
def __init__(self, list_1):
QDialog._init__(self):
uic.loadUi("ListWidget.ui", self)
for txt in list_1:
QListWidgetItem(txt, self.list_widget)
2。使用 QListWidgetItems 作为您的 "model".
甚至不必费心保留一个单独的列表。直接编辑QListWidget
中的QListWidgetItems
。这仅在您不是每次都销毁和创建 QDialog
时才有效。
在较长的 运行 中,我认为您会发现此方法效果更好。您将更少地拆除和刷新 GUI(这意味着它会更快),并且您不必处理更新源列表而不更新 GUI 的错误(反之亦然)。
我在 QtDesigner 中创建了一个 QListWidget
,我想向它添加我之前创建的另一个名为 "list_1" 的列表中的一些项目。问题是,每次我按下组合键时,列表(list_1
)都会更新。
代码如下:
class Win(self):
list_1 = []
number = 0 #This is a variable that is continuously changing
def __init__(self):
#Some stuff in here
def addItem(self):
item = "Number " + str(Win.number)
Win.list_1.append(item)
Win.number += 1
class Dialog(QDialog):
def __init__(self):
QDialog._init__(self):
uic.loadUi("ListWidget.ui", self)
def addItems(self):
#I want to create this method to add the items from list_1 into the `QListWidget`
我怎样才能打开 QDialog
(使用我已有的按钮)并在 QListWidget 中查看附加在列表中的项目。我的意思是,“我打开 QDialog
,我看到数字 1。然后,我关闭 QDialog
,向列表中添加一个数字,当我再次打开 QDialog
时,我可以看到 Number 1
和Number 2
,依此类推。
希望你能帮助我。
如果您不打算使用 Model/View 架构,您有两个选择。
1。 Build/refresh 每次显示 QListWidget。
除非您有数千个项目或对每个项目都有复杂的自定义绘画,否则这会非常快。
class Dialog(QDialog):
def __init__(self, list_1):
QDialog._init__(self):
uic.loadUi("ListWidget.ui", self)
for txt in list_1:
QListWidgetItem(txt, self.list_widget)
2。使用 QListWidgetItems 作为您的 "model".
甚至不必费心保留一个单独的列表。直接编辑QListWidget
中的QListWidgetItems
。这仅在您不是每次都销毁和创建 QDialog
时才有效。
在较长的 运行 中,我认为您会发现此方法效果更好。您将更少地拆除和刷新 GUI(这意味着它会更快),并且您不必处理更新源列表而不更新 GUI 的错误(反之亦然)。