kurz mal vorstellen. Ich bin 56 Jahre und schreibe schon was länger an einem Restic UI für mich selber herum. Das funktioniert so weit auch alles ganz gut, bis auf zwei Kleinigkeiten, wo ich als Anfänger irgendwie Verständnisprobleme habe und leider auch im Netz nichts finde. Wobei ich davon überzeugt bin, das es da was gibt, ich nur falsch suche...
Ich hatte am Anfang versucht mit dem GUI Designer anzufangen, das geht aber nicht wenn man es nicht versteht. So mit habe ich mein UI von Hand geschrieben und hoffentlich die Zusammenhänge besser verstanden. Heute möchte ich mal nach Hilfe fragen, für eines meiner beiden Probleme.
Was möchte ich machen?
Ich möchte einen Menüpunkt in Abhängigkeit einer Funktion aktivieren lassen, bzw. umgekehrt.
Dazu habe ich in der Dokumentation den Befehl setEnabled(True) gefunden.
Mein Problem!
Es funktioniert nicht, weil ich es nicht verstehe
Beispielcode
Ich habe ein Beispiel aus dem Netz genommen und um ein Menü erweitert um Euch zu zeigen was ich machen möchte.
.
Code: Alles auswählen
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QLineEdit, QVBoxLayout, QWidget, QAction, QPushButton
from PyQt5.QtGui import(QIcon)
import sys
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.button_is_checked = True
self.menu_is_checked = True
self.menu_is_checked2 = True # Macht das Menü sichtbar
self.setWindowTitle("My App")
button = QPushButton("Press Me!")
button.setCheckable(True)
button.clicked.connect(self.the_button_was_toggled)
button.setChecked(self.button_is_checked)
#----Main Menu ----#
mainMenu = self.menuBar()
helpMenu = mainMenu.addMenu('&Help')
#----Help Menu ----#
aboutButton = QAction(QIcon('icons/info-circle.svg'), 'About Restic UI', self)
aboutButton.setCheckable(True)
aboutButton.setEnabled(True)
aboutButton.triggered.connect(self.menu_was_toggeld2)
aboutButton.setEnabled(self.menu_is_checked2)
helpMenu.addAction(aboutButton)
self.setCentralWidget(button)
def the_button_was_toggled(self, checked):
self.button_is_checked = checked
print(self.button_is_checked)
def menu_was_toggeld2(self, checked):
print("erreicht", checked)
self.menu_is_checked2 = False
app = QApplication(sys.argv)
window = MainWindow()
window.show()
app.exec()