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...')
