Добавление элементов в QListView

Не могу разобраться, помогите.

Пытаюсь добавить элемент в лист вью

from PyQt5 import QtWidgets, uic
import sys
from test import Ui_MainWindow

class mywindow(QtWidgets.QMainWindow):
    def __init__(self):
        super(mywindow, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.ui.textBrowser.setText("PyScripts")

app = QtWidgets.QApplication([])
application = mywindow()
application.show()
 
sys.exit(app.exec())

У меня получилось вывести текст при помощи self.ui.textBrowser.setText("PyScripts")

Я пытаюсь таким же образом добавить элемент в лист вью,
но что то без успешно.


Ответы (1 шт):

Автор решения: S. Nick

Представление списка QListView, представление дерева QTreeView и представление таблицы QTableView, основаны на модели, что означает, что операции сбора или хранения данных связаны с моделью.

Когда мы имеем дело с большим объемом данных, использование элементов управления на основе моделей может сделать программу быстрее и повысить производительность.

Следует отметить, что QListView, QTreeView и QTableView являются родительскими классами QListWidget, QTreeWidget и QTableWidget соответственно.

QStringListModel - Класс предоставляет модель, которая предоставляет строки для представлений.

QStandardItemModel - предоставляет общую модель для хранения пользовательских данных.

...

import sys
from PyQt5 import QtWidgets, QtGui, QtCore, uic
#from test import Ui_MainWindow

class mywindow(QtWidgets.QMainWindow):
    def __init__(self):
        super(mywindow, self).__init__()
#        self.ui = Ui_MainWindow()
#        self.ui.setupUi(self)

        self.centralWidget = QtWidgets.QWidget()
        self.setCentralWidget(self.centralWidget)

        self.item_list = ['item %s' % i for i in range(11)]                 
        self.model_1 = QtCore.QStringListModel(self)
        self.model_1.setStringList(self.item_list)
        self.listView_1 = QtWidgets.QListView(self)                                    
        self.listView_1.setModel(self.model_1)
        
        self.model =  QtGui.QStandardItemModel(self)
        self.methods = ['PyScripts', 'option 1', 'option 2', 'option 3']
        for method in self.methods:
            item = QtGui.QStandardItem(method)
            item.setData(method)
            self.model.appendRow(item)        
        self.listView_2 = QtWidgets.QListView()
        self.listView_2.setModel(self.model)
        
        self.textBrowser = QtWidgets.QTextBrowser()
        self.textBrowser.setText("PyScripts")
        
        grid = QtWidgets.QGridLayout(self.centralWidget)
        grid.addWidget(self.listView_1)
        grid.addWidget(self.listView_2)
        grid.addWidget(self.textBrowser)
        

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    application = mywindow()
    application.show()
    sys.exit(app.exec_())

введите сюда описание изображения

→ Ссылка