Hallo Madmartigan,
danke für deine Antwort. Wusste nicht, dass man eine Variable vom Type Boolean "addieren" kann. Das wird mir sicher noch viel helfen.
Aber leider habe ich noch ein Verständnisproblem beim Programm aufbau.
Viele Tutorial zeigen entweder, wie ich ein Programm aufbaue mit QWidget oder mit QMainWindow. Aber nirgends sehe ich beides. Mein Problem ist nämlich, dass ich nicht weiß, wie ich auf ein Object zugreife, welches sich in einer anderen Klasse befinden.
Siehe:
Code: Alles auswählen
class Window(QtGui.QMainWindow):
def __init__(self):
super(Window, self).__init__()
self.initUi()
def initUi(self):
self.statusBar().showMessage('Ready')
exitAction = QtGui.QAction(QtGui.QIcon('exit.png'), '&Exit', self)
exitAction.setShortcut('Ctrl+Q')
exitAction.setStatusTip('Exit application')
exitAction.triggered.connect(QtGui.qApp.quit)
menubar = self.menuBar()
fileMenu = menubar.addMenu('&File')
fileMenu.addAction(exitAction)
update_italy = QtGui.QAction('Italy', menubar, checkable=True)
update_spain = QtGui.QAction('Spain', menubar, checkable=True)
update_hungary = QtGui.QAction('Hungary', menubar, checkable=True)
updatemenu = menubar.addMenu('&Update')
updatemenu.addAction(update_italy)
updatemenu.addAction(update_spain)
updatemenu.addAction(update_hungary)
self.setObjectName(_fromUtf8("Window"))
self.resize(550, 947)
self.setFixedSize(550, 947)
self.form_widget = FormWidget(self)
self.setCentralWidget(self.form_widget)
self.show()
class FormWidget(QtGui.QWidget):
def __init__(self, parent):
super(FormWidget, self).__init__(parent)
self.layout = QtGui.QVBoxLayout(self)
self.setLayout(self.layout)
#[MEINE GUI ELEMENTE]
.
.
.
def checkselection(self):
is_italy = [b]Window.initUi.update_italy.IsChecked()[/b]
is_spain = self.update_spain.IsChecked()
is_both = update_italy and update_spain
if (is_both):
pass
elif (is_italy):
print "Italy"
elif (is_spain and not is_italy):
print "spain"
else:
pass
Die fett markierte Zeile funktioniert leider nicht, weil ich nicht weiß, wie an das Menu herankomme. Oder hätte ich mein Programm gleich anders aufbauen müssen?