1. QListView
Official Document: https://doc.qt.io/qt-5/qlistview.html
1.1 QListView shields double - click editing
1
| listView.setEditTriggers(QAbstractItemView.NoEditTriggers)
|
1.2 QListView Display Data
1 2 3 4
| slm = QStringListModel() self.qList = ['Item 1', 'Item 2', 'Item 3', 'Item 4'] slm.setStringList(self.qList) listView.setModel(slm)
|
1.3 QListView Bind click events
1 2 3 4 5 6
| listView.clicked.connect(self.handle_clicked_list)
def clicked_list(self, qModelIndex): QMessageBox.information(self, "QListView", "你选择了: " + self.qList[qModelIndex.row()]) print("点击的是:" + str(qModelIndex.row()))
|
1.4 QListView Sample
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| from PySide2.QtWidgets import QApplication, QWidget, QVBoxLayout, QListView, QMessageBox from PySide2.QtCore import QStringListModel
import sys
class ListViewDemo(QWidget): def __init__(self, parent=None): super(ListViewDemo, self).__init__(parent) self.setWindowTitle("QListView 例子") self.resize(300, 270)
layout = QVBoxLayout() listView = QListView()
slm = QStringListModel() self.qList = ['Item 1', 'Item 2', 'Item 3', 'Item 4'] slm.setStringList(self.qList) listView.setModel(slm)
listView.clicked.connect(self.clicked_list) layout.addWidget(listView) self.setLayout(layout)
def clicked_list(self, qModelIndex): QMessageBox.information(self, "QListView", "你选择了: " + self.qList[qModelIndex.row()]) print("点击的是:" + str(qModelIndex.row()))
if __name__ == "__main__": app = QApplication(sys.argv)
win = ListViewDemo() win.show()
sys.exit(app.exec_())
|

Official Document: https://doc.qt.io/qt-5.15/QTableWidget.html
1 2
| item = table_widget.item(index, column) item.setFlags(QtCore.Qt.ItemIsEnabled)
|
1 2 3 4 5 6 7
| new_row_index = table_widget.rowCount() table_widget.insertRow(new_row_index)
table_widget.setItem(new_row_index, 0, QTableWidgetItem('Data0')) table_widget.setItem(new_row_index, 1, QTableWidgetItem('Data1')) table_widget.setItem(new_row_index, 2, QTableWidgetItem('Data2'))
|
1
| table_widget.selectedIndexes()
|
Sometimes choosing a item is not what we want.

In Qt Designer, we can modify:
selectionBehavior > SelectItems

After the modification:
