Buy Me a Coffee? Your support is much appreciated!
PayPal Me: https://www.paypal.me/jiejenn/5
Venmo: @Jie-Jenn
import sys from PyQt5.QtWidgets import QApplication, QWidget, QMenu, QListWidget, QVBoxLayout from PyQt5.QtCore import QEvent, Qt class MyApp(QWidget): def __init__(self): super().__init__() self.setWindowTitle('Insert Context Menu to ListWidget') self.window_width, self.window_height = 800, 600 self.setMinimumSize(self.window_width, self.window_height) layout = QVBoxLayout() self.setLayout(layout) self.listWidget = QListWidget() self.listWidget.addItems(('Facebook', 'Microsoft', 'Google')) self.listWidget.installEventFilter(self) layout.addWidget(self.listWidget) def eventFilter(self, source, event): if event.type() == QEvent.ContextMenu and source is self.listWidget: menu = QMenu() menu.addAction('Action 1') menu.addAction('Action 2') menu.addAction('Action 3') if menu.exec_(event.globalPos()): item = source.itemAt(event.pos()) print(item.text()) return True return super().eventFilter(source, event) if __name__ == '__main__': # don't auto scale. QApplication.setAttribute(Qt.HighDpiScaleFactorRoundingPolicy.PassThrough) app = QApplication(sys.argv) app.setStyleSheet(''' QWidget { font-size: 30px; } ''') myApp = MyApp() myApp.show() try: sys.exit(app.exec_()) except SystemExit: print('Closing Window...')
Tank you very much 😀
I use it to change the color for Usertype (Admin, Moderator etc.)
def eventFilter(self, source, event):
if event.type() == QEvent.ContextMenu and source is self.spielerliste:
menu = QMenu()
menu.addAction(‘Administrator’)
menu.addAction(‘Moderator’)
menu.addAction(‘Stammspieler’)
menu.addAction(‘normaler Spieler’)
spielertyp = menu.exec(event.globalPos()).text()
if spielertyp:
spieler = source.itemAt(event.pos())
print(f”{spieler.text()} soll {spielertyp} werden.”)
self.spieler = update.spielerliste(spielertyp, spieler.text(), self.spieler)
datei.speichere_spielerliste(self.server[‘IP’], self.spieler)
if spielertyp == “Administrator”: spieler.setForeground(QtCore.Qt.red)
elif spielertyp == “Moderator”: spieler.setForeground(QtCore.Qt.magenta)
elif spielertyp == “Stammspieler”: spieler.setForeground(QtCore.Qt.darkGreen)
else: spieler.setForeground(QtCore.Qt.black)
return True
return super().eventFilter(source, event)