(beim Thema Playwright)
aber hier mein problem (vom Desktop aus, nicht tablet)
ich hab eine context_menu.py wo ich all meine context menus quasi verwalte.
aufruf mit:
Code: Alles auswählen
def showContextMenu_in_performer_search(self, pos: int) -> None: # tblWdg_performer
action_header: QAction = self.set_header_on_contextmenu("Tabelle Performer Suche")
menu_dict: dict = {
"Zeile/Namen hinzufügen": ("name_hinzufuegen.png", lambda: PerformerAddDel(self, self.Main) if not self.dialog_shown else None),
"Zeile/Namen löschen": ("name_loeschen.png", self.delete_performer),
"Zeile/Namen zusammenfügen/mergen mit ID": ("merge_person.png", lambda: PerformerAddDel(self, "merge", self.Main) if not self.dialog_shown else None) }
self.show_context_menu(pos, action_header, menu_dict)
def show_context_menu(self, pos: int, action_header: QAction, menu_dict: dict) -> None:
if self.dialog_shown == False:
self.context_menu = QMenu(self.Main)
self.context_menu.addAction(action_header)
for menu, (icon, func) in menu_dict.items():
action = QAction(QIcon(f":/labels/_labels/{icon}"), menu, self.Main)
action.triggered.connect(func)
self.context_menu.addAction(action)
self.context_menu.setStyleSheet("QMenu::item:disabled {background: transparent;}")
self.context_menu.exec(QCursor.pos())
in PerformerAddDel() seltze ich self.dialog_shown auf True (self.cmenu=parent self.cmenu.dialog_shown = True)
das verhalten hab ich bei einem anderen context menu nicht nur in "def showContextMenu_in_performer_search" das andere ist genauso aufgebaut.
hier:
Code: Alles auswählen
def showContextMenu_in_performer_links(self, pos: int) -> None: # tblWdg_performer_links
action_header: QAction = self.set_header_on_contextmenu("Tabelle Performer Links")
menu_dict: dict = {
"Zeile hinzufügen": ("zeile_add.png", lambda: PerformerAddDel(self, "add_new_nameslink", self.Main) if not self.dialog_shown else None),
"Zeile löschen": ("zeile_del.png", self.delete_item),
"Zeile für eine neuen Performer Datensatz anlegen": ("new_database.png", lambda: PerformerAddDel(self, "add_new_performer", self.Main) if not self.dialog_shown else None),
"Refresh Tabelle neu aus Datenbank": ("load_table.png", self.refresh_performer_links_tabelle),
"Lade Bild von Website": ("load_image.png", self.load_image_from_webside),
"Tabellenspalten am Text anpassen": ("table_content.png", self.context_resize),
"Explorer im Namen Ordner öffnen": ("explorer.png", self.open_explorer) }
self.show_context_menu(pos, action_header, menu_dict)