sortItems(Qt.SortOrder) : 排序,有 Qt.SortOrder.DescendingOrder 降序和 Qt.SortOrder.AscendingOrder 升序。下面範例是使用升序,要注意雖然是數字,但型態是字串,所以他會用字典順序,也就是 ASCII 排序,比較第一個字。from PySide6.QtWidgets import QApplication, QWidget, QListWidget, QVBoxLayout
from PySide6.QtCore import Qt
class Mywindow(QWidget):
def __init__(self):
super().__init__()
QList = QListWidget()
QList.addItems(["12", "57", "178","222"])
QList.sortItems(Qt.SortOrder.AscendingOrder) #排序
layout = QVBoxLayout()
layout.addWidget(QList)
self.setLayout(layout)
if __name__ == "__main__":
app = QApplication([])
window = Mywindow()
window.show()
app.exec()

clear() : 清空列表。currentItem() : 得到目前的元素,可以搭配 text() 顯示當前的字串等其他功能使用。下面範例是當選擇改變時,會觸發信號,然後顯示當前選擇的文字。from PySide6.QtWidgets import QApplication, QWidget, QListWidget, QVBoxLayout , QListView
class Mywindow(QWidget):
def __init__(self):
super().__init__()
QList = QListWidget()
QList.addItems(["12", "57", "178","222"])
QList.currentItemChanged.connect(lambda: print(QList.currentItem().text()))
layout = QVBoxLayout()
layout.addWidget(QList)
self.setLayout(layout)
if __name__ == "__main__":
app = QApplication([])
window = Mywindow()
window.show()
app.exec()
setText(str) : 設置文字。setFlow(QListView.Flow) : 可以設定排列方法,要搭配要 QListView.Flow 使用,有 LeftToRight 左到右排列,或 TopToBottom 上到下排列。下面範例是左到右排列。from PySide6.QtWidgets import QApplication, QWidget, QListWidget, QVBoxLayout , QListView
class Mywindow(QWidget):
def __init__(self):
super().__init__()
QList = QListWidget()
QList.addItems(["12", "57", "178","222"])
QList.setFlow(QListView.Flow.LeftToRight) #排列
layout = QVBoxLayout()
layout.addWidget(QList)
self.setLayout(layout)
if __name__ == "__main__":
app = QApplication([])
window = Mywindow()
window.show()
app.exec()

QAction 做菜單。範例是當點擊滑鼠右鍵,可以點選刪除,然後刪除當前選取的元素。from PySide6.QtWidgets import QApplication, QWidget, QListWidget, QVBoxLayout
from PySide6.QtCore import Qt
from PySide6.QtGui import QAction
class Mywindow(QWidget):
def __init__(self):
super().__init__()
self.QList = QListWidget()
self.QList.addItems(["apple pie", "apple", "banana"])
# 創建上下文菜單的 QAction
self.QList.setContextMenuPolicy(Qt.ContextMenuPolicy.ActionsContextMenu) #設定菜單
action = QAction("刪除", self)
self.QList.addAction(action)
action.triggered.connect(self.Delete)
#布局
layout = QVBoxLayout()
layout.addWidget(self.QList)
self.setLayout(layout)
def Delete(self) :
self.QList.takeItem(self.QList.currentRow())
if __name__ == "__main__":
app = QApplication([])
window = Mywindow()
window.show()
app.exec()
| 功能 | 方法 |
|---|---|
| 排序 | sortItems(Qt.SortOrder) |
有分成降序和升序。
| 功能 | 方法 |
|---|---|
| 降序 | Qt.SortOrder.DescendingOrder |
| 升序 | Qt.SortOrder.AscendingOrder |
| 功能 | 方法 |
|---|---|
| 清空列表 | clear() |
| 取得當前文字 | text() |
| 設置元素文字 | setText(str) |
| 目前的元素 | currentItem() |
| 排列方法 | setFlow(QListView.Flow) |