ich habe folgenden Code, habe jedoch Probleme den Index vom QStackedWidget zu ändern, weil er die Variable nicht kennt.
WIe kann ich das Problem lösen und ist der Code so überhaupt richtig?
Code: Alles auswählen
#!/usr/bin/python
import sys
import os
from PySide import QtCore
from PySide import QtGui
mainWindow = 0
app = 0
class MusicWidget(QtGui.QWidget):
def __init__(self, parent=None):
super(MusicWidget, self).__init__(parent)
QtGui.QLabel("Hallo Welt", self)
class HomeWidget(QtGui.QWidget):
def __init__(self, parent=None):
super(HomeWidget, self).__init__(parent)
button = ImageButton(QtGui.QPixmap("images/music.png"),self)
button.setGeometry(71,83,125,169)
button.clicked.connect(self.startMusicMenu)
def startMusicMenu(self):
self.parent.stack.setCurrentIndex(1)
class MainMenu(QtGui.QMainWindow):
def __init__(self, parent=None):
super(MainMenu, self).__init__(parent)
self.setGeometry(40,40,800,480)
self.setWindowTitle("Testfenster")
self.setWindowIcon(QtGui.QIcon("images/favicon.gif"))
background = ImageButton(QtGui.QPixmap("images/background.png"), self)
background.setGeometry(0,0,800,480)
self.stack = QtGui.QStackedWidget()
home = HomeWidget()
self.stack.addWidget(home)
music = MusicWidget()
self.stack.addWidget(music)
self.stack.setCurrentWidget(home)
self.setCentralWidget(self.stack)
self.show()
class ImageButton(QtGui.QAbstractButton):
def __init__(self, pixmap, parent=None):
super(ImageButton, self).__init__(parent)
self.pixmap = pixmap
def paintEvent(self, event):
painter = QtGui.QPainter(self)
painter.drawPixmap(event.rect(), self.pixmap)
def sizeHint(self):
return self.pixmap.size()
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
mainWindow = MainMenu()
sys.exit(app.exec_())