es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo desactivar el modo de pantalla completa en Mac OS en mi aplicación PyQT?

Tengo una aplicación simple de PyQt y estoy tratando de evitar que la aplicación entre en modo pantalla completa cuando se hace clic en el botón maximizar verde (comportamiento ideal) O deshabilitando la acción por completo (si no se puede hacer lo primero). He intentado eliminar una de las señales de la ventana, pero parece que no tiene ningún efecto:

class AppWindow(QMainWindow):
    def __init__(self, main_widget):
        super(AppWindow, self).__init__()
        self.setWindowFlags(self.windowFlags() & ~Qt.WindowFullscreenButtonHint)

Creo que esto en realidad debería eliminar el botón maximizar, pero ni siquiera hace eso. Preferiría que se mantuviera el botón de máxima, pero se impidiera el modo de pantalla completa o si pudiera anular el comportamiento del botón de alguna manera.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para evitar que una aplicación PyQt entre en modo de pantalla completa cuando se hace clic en el botón de maximizar verde, se puede utilizar el siguiente código:

    class AppWindow(QMainWindow):
        def __init__(self, main_widget):
            super(AppWindow, self).__init__()
            self.setFixedSize(500, 500) # Establecer un tamaño fijo para la ventana
            self.setWindowFlags(self.windowFlags() & ~Qt.WindowMaximizeButtonHint) # Eliminar el botón de maximizar
    

    En este código, usamos el método setFixedSize para establecer un tamaño fijo para la ventana. Esto evitará que la ventana se redimensione cuando se hace clic en el botón de maximizar. También usamos el método setWindowFlags para eliminar por completo el botón de maximizar.

    Si desea mantener el botón de maximizar pero evitar que entre en modo de pantalla completa, puede utilizar el siguiente código:

    class AppWindow(QMainWindow):
        def __init__(self, main_widget):
            super(AppWindow, self).__init__()
            self.setFixedSize(500, 500) # Establecer un tamaño fijo para la ventana
            self.setWindowFlags(self.windowFlags() & ~Qt.WindowFullscreenButtonHint) # Eliminar el botón de pantalla completa
    

    En este código, usamos el método setWindowFlags para eliminar el botón de pantalla completa mientras se mantiene el botón de maximizar.

    Si ninguna de estas soluciones funciona, puede intentar subclasificar la clase QMainWindow y anular el método showMaximized para evitar el modo de pantalla completa.

Comments are closed.