Buy Me a Coffee? Your support is much appreciated!
PayPal Me: https://www.paypal.me/jiejenn/5
Venmo: @Jie-Jenn
Source Code:
import sys import random from PyQt5.QtWidgets import QApplication, QWidget, QListWidget, QListWidgetItem, QPushButton, QVBoxLayout from PyQt5.QtCore import Qt class ListWidget(QListWidgetItem): def __lt__(self, other): try: print(self.text()), float(other.text()) return float(self.text()) < float(other.text()) except: return QListWidgetItem.__lt__(self, other) class AppDemo(QWidget): def __init__(self): super().__init__() self.resize(800, 1000) self.setStyleSheet('font-size: 50px;') layout = QVBoxLayout() buttonAsc = QPushButton('Sort Ascending') buttonAsc.clicked.connect(self.sortItemsAscending) layout.addWidget(buttonAsc) buttonDesc = QPushButton('Sort Descending') buttonDesc.clicked.connect(self.sortItemsDescending) layout.addWidget(buttonDesc) self.listWidget = QListWidget() layout.addWidget(self.listWidget) vals = [10, 140, 45, 4, 455, 15, 1] for v in vals: # self.listWidget.addItem(str(v)) self.listWidget.addItem(ListWidget(str(v))) self.setLayout(layout) def sortItemsAscending(self): self.listWidget.sortItems() def sortItemsDescending(self): self.listWidget.sortItems(Qt.DescendingOrder) if __name__ == '__main__': app = QApplication(sys.argv) demo = AppDemo() demo.show() try: sys.exit(app.exec_()) except SystemExit: print('Closing Window...')