def init_window_size(self): desktop = QDesktopWidget() max_widget_height = desktop.availableGeometry( desktop.screenNumber(self)).height() - 50 max_widget_width = desktop.availableGeometry( desktop.screenNumber(self)).width() self.setMaximumWidth(int(max_widget_width)) self.setMaximumHeight(int(max_widget_height))
def __resize_video(self, check_desktop_size=False) -> None: if self.isFullScreen() or self.isMaximized( ) or not self.__player.has_video(): return # Block until the first frame has been decoded # TODO: Find a better way to do this while self.__player.video_width() == 0: pass width = self.__player.video_width() height = self.__player.video_height() if check_desktop_size: desktop_widget = QDesktopWidget() screen_geometry = desktop_widget.screenGeometry( desktop_widget.screenNumber(QCursor.pos())) if self.height() - self.widget_mpv.height( ) + height > screen_geometry.height(): height = int(screen_geometry.height() * 2 / 3) width = int(width * height / self.__player.video_height()) # DA FUQ! # Have not found a better way .. :/ for i in range(0, 8): if width and height: additional_height = self.height() - self.widget_mpv.height() self.resize(width, height + additional_height) self.__move_window_to_center()
def __move_window_to_center(self) -> None: """ Moves window to center of the screen. https://wiki.qt.io/How_to_Center_a_Window_on_the_Screen """ desktop_widget = QDesktopWidget() screen_geometry = desktop_widget.screenGeometry( desktop_widget.screenNumber(QCursor.pos())) self.setGeometry( QStyle.alignedRect(Qt.LeftToRight, Qt.AlignCenter, self.window().size(), screen_geometry))