def __init__(self): QtGui.QMainWindow.__init__(self) self.setWindowTitle("musicbeamer") screen_rectangle = QtGui.QDesktopWidget().availableGeometry() sx, sy = screen_rectangle.getRect()[2], screen_rectangle.getRect()[3] #'for smaller displays, we want to use vertically all available space' #if sy <= 800: if platform.uname()[0] == "Windows": 'on windows we has to deal with the taskbar manually' y = sy - 80 else: 'on linux .availableGeometry() did it already for us' y = sy #else: # y = sy #* 0.61 x = sx * 0.61 self.resize(int(x), int(y)) self.beamer_controller = BeamerController() self.addMenuBar() self.config = Config() screen = self.config.getProgramScreen() self.routeWindowToPrimaryScreen(screen) self.schedule = None self.preview = None self.layout = QtGui.QHBoxLayout() centralWidget = QtGui.QWidget() self.setCentralWidget(centralWidget) centralWidget.setLayout(self.layout) #self.addPreview() self.addSchedule() self.addPreview() self.setViewportSize(self.mainFrame().contentsSize())
class Songbeamer(QtGui.QMainWindow): def __init__(self): QtGui.QMainWindow.__init__(self) self.setWindowTitle("musicbeamer") screen_rectangle = QtGui.QDesktopWidget().availableGeometry() sx, sy = screen_rectangle.getRect()[2], screen_rectangle.getRect()[3] #'for smaller displays, we want to use vertically all available space' #if sy <= 800: if platform.uname()[0] == "Windows": 'on windows we has to deal with the taskbar manually' y = sy - 80 else: 'on linux .availableGeometry() did it already for us' y = sy #else: # y = sy #* 0.61 x = sx * 0.61 self.resize(int(x), int(y)) self.beamer_controller = BeamerController() self.addMenuBar() self.config = Config() screen = self.config.getProgramScreen() self.routeWindowToPrimaryScreen(screen) self.schedule = None self.preview = None self.layout = QtGui.QHBoxLayout() centralWidget = QtGui.QWidget() self.setCentralWidget(centralWidget) centralWidget.setLayout(self.layout) #self.addPreview() self.addSchedule() self.addPreview() self.setViewportSize(self.mainFrame().contentsSize()) def addMenuBar(self): menubar = self.menuBar() file = menubar.addMenu('&File') schedule = QtGui.QAction(QtGui.QIcon("icons/exit.png"), "Neuer Ablaufplan", self) schedule.setShortcut("Ctrl+N") schedule.setStatusTip("Neuer Ablaufplan") self.connect(schedule, QtCore.SIGNAL("triggered()"), self.addSchedule) file.addAction(schedule) exit = QtGui.QAction(QtGui.QIcon('icons/exit.png'), 'Exit', self) exit.setShortcut('Ctrl+Q') exit.setStatusTip('Exit application') self.connect(exit, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()')) file.addAction(exit) edit = menubar.addMenu("&Bearbeiten") insert = menubar.addMenu("&Einfügen") song = QtGui.QAction(QtGui.QIcon("icons/exit.png"), "Lied einfügen", self) song.setShortcut("Ctrl+I") song.setStatusTip("Neues Lied in Ablauf einfügen") self.connect(song, QtCore.SIGNAL("triggered()"), self.newSong) insert.addAction(song) presentation = menubar.addMenu("&Präsentation") black = QtGui.QAction(QtGui.QIcon("icons/exit.png"), "black", self) black.setShortcut("Ctrl+B") black.setStatusTip("Leinwand schwarz") self.connect(black, QtCore.SIGNAL("triggered()"), self.beamer_controller.blackBeamerWindow) presentation.addAction(black) desktop = QtGui.QAction(QtGui.QIcon("icons/exit.png"), "desktop", self) desktop.setStatusTip("Präsentationsfenster schließen") self.connect(desktop, QtCore.SIGNAL("triggered()"), self.beamer_controller.closeBeamerWindow) presentation.addAction(desktop) web = QtGui.QAction(QtGui.QIcon("icons/exit.png"), "text", self) web.setStatusTip("Zeigt einen Text") self.connect(web, QtCore.SIGNAL("triggered()"), lambda: self.beamer_controller.newBeamerWebWindow(None)) presentation.addAction(web) image = QtGui.QAction(QtGui.QIcon("icons/exit.png"), "image", self) image.setStatusTip("Zeigt einige Bilder") self.connect(image, QtCore.SIGNAL("triggered()"), lambda: self.beamer_controller.newBeamerImageWindow(None)) presentation.addAction(image) def routeWindowToPrimaryScreen(self, screen): desktop = QtGui.QApplication.desktop() screen_rect = desktop.screenGeometry(int(screen)) self.move(screen_rect.left(), screen_rect.top()) def resetSchedule(self): pass def addSchedule(self): #self.newPreview() #scroll_area_preview = self.addPreview() self.schedule = Schedule(self.preview) #self.schedule.setGeometry(0, 0, 300, 400) scroll_layout = QtGui.QVBoxLayout() scroll_layout.addWidget(self.schedule) scroll_layout.setAlignment(QtCore.Qt.AlignTop) scroll_widget = QtGui.QWidget() #scroll_widget = Schedule("bla") #self.schedule = scroll_widget scroll_widget.setLayout(scroll_layout) scroll_area = QtGui.QScrollArea() scroll_area.setWidgetResizable(True) scroll_area.setFixedWidth( SCHEDULE_WIDTH ) scroll_area.setWidget(scroll_widget) self.layout.setAlignment(QtCore.Qt.AlignLeft) self.layout.addWidget(scroll_area) #self.layout.addWidget(scroll_area_preview) def addPreview(self): self.preview = Preview(self.beamer_controller) scroll_layout = QtGui.QVBoxLayout() scroll_layout.addWidget(self.preview) scroll_widget = QtGui.QWidget() scroll_widget.setLayout(scroll_layout) scroll_area = QtGui.QScrollArea() scroll_area.setWidgetResizable(False) #scroll_area.setFixedWidth( self.y() - SCHEDULE_WIDTH ) #scroll_area.setFixedWidth(1000) #scroll_area.setFixedHeight(2000) scroll_area.setWidget(scroll_widget) self.layout.addWidget(scroll_area) #self.connect(schedule, QtCore.SIGNAL("triggered()"), self.addSchedule) print("scroll area") print(scroll_area.size()) def newSong(self): self.schedule.addButton()