List View

Listing 13 scripts/PYQT3/03_data_model/02_list_view/main.py
 # -*- coding: utf-8 -*-
 import sys
 from PyQt5.QtWidgets import QApplication, QListView, QMainWindow, QVBoxLayout, QWidget, QAbstractItemView
 from PyQt5.QtCore import QStringListModel

 class MainWindow(QMainWindow):
     def __init__(self):
         super(MainWindow, self).__init__()

         self.list_view = QListView()
         self.model = QStringListModel()
         names = ["김철수", "박혁수", "이고수"]
         self.model.setStringList(names)
         self.list_view.setModel(self.model)

         self.list_view.setEditTriggers(QAbstractItemView.NoEditTriggers)

         layout = QVBoxLayout()
         layout.addWidget(self.list_view)
         container = QWidget()
         container.setLayout(layout)
         self.setCentralWidget(container)

 if __name__ == '__main__':
     app = QApplication(sys.argv)
     window = MainWindow()
     window.show()
     sys.exit(app.exec_())
  • The QListView and QStringListModel are used to display list data.

  • The list view displays items in a vertical arrangement, allowing users to select one of them.

  • QStringListModel is suitable for displaying simple data using a list of strings as its model.

names = ["김철수", "박혁수", "이고수"]

The above data is displayed in the list view using the QStringListModel. Moreover, the setEditTriggers method is employed to deactivate item editing.