listview如何添加
时间: 2023-08-01 22:14:34 浏览: 77
如果想要在 PyQt 中的 QListView 中添加一些新的项目,可以通过修改相应的模型来实现。下面是一个简单的例子,演示如何向 QListView 中添加新的项目:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow, QListView, QVBoxLayout, QWidget, QPushButton, QLineEdit, QHBoxLayout, QMessageBox
from PyQt5.QtCore import QStringListModel
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.list_view = QListView(self)
self.model = QStringListModel()
self.string_list = ['Apple', 'Banana', 'Cherry', 'Durian']
self.model.setStringList(self.string_list)
self.list_view.setModel(self.model)
self.button = QPushButton('Add', self)
self.button.clicked.connect(self.add_item)
self.line_edit = QLineEdit(self)
hbox = QHBoxLayout()
hbox.addWidget(self.line_edit)
hbox.addWidget(self.button)
vbox = QVBoxLayout()
vbox.addWidget(self.list_view)
vbox.addLayout(hbox)
self.setLayout(vbox)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('List view example')
self.show()
def add_item(self):
new_item = self.line_edit.text()
if new_item:
self.model.insertRows(self.model.rowCount(), 1)
index = self.model.index(self.model.rowCount() - 1)
self.model.setData(index, new_item)
self.line_edit.setText('')
else:
QMessageBox.warning(self, 'Warning', 'Please input an item')
if __name__ == '__main__':
app = QApplication([])
ex = Example()
app.exec_()
```
在上面的例子中,我们创建了一个 QListView 控件和一个 QStringListModel 模型。我们将字符串列表设置为模型数据,并将模型设置为列表视图的模型。我们还添加了一个按钮和一个文本输入框,用于添加新的项目。当用户点击按钮时,我们会从文本输入框中获取新的项目,并添加到模型中。最后,我们将列表视图和其他控件添加到一个 QVBoxLayout 布局中,并将该布局设置为 QWidget 的布局。
通过这个例子,我们可以学习到如何向 PyQt 中的 QListView 中添加新的项目。
阅读全文