Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Spanish
  4. Cómo deshabilitar los botones del Form: Maximizar, Minimizar y Close.
Forum Updated to NodeBB v4.3 + New Features

Cómo deshabilitar los botones del Form: Maximizar, Minimizar y Close.

Scheduled Pinned Locked Moved Unsolved Spanish
7 Posts 2 Posters 5.9k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • H Offline
    H Offline
    Heyner AO
    wrote on last edited by
    #1

    Hola soy nuevo en QT

    Estoy haciendo una aplicación en QT (Qt Widgets Application)

    Y me gustaría ocultar los botones de minimizar, maximizar y cerrar del form. He leído algo y la info me apunta que lo puede hacer con el siguiente comando (setWindowFlags(Qt::WindowCloseButtonHint);
    setWindowFlags(Qt::WindowMaximizeButtonHint);
    setWindowFlags(Qt::WindowMinimizeButtonHint);) , pero no se en que parte del código se debe colocar para que funcione o si tengo que referirlo a Formulario, he probado en varias partes y siempre me da error, agradecería si me pueden orientar.

    1 Reply Last reply
    0
    • juankiJ Offline
      juankiJ Offline
      juanki
      Moderators
      wrote on last edited by juanki
      #2

      Hola @Heyner-AO

      Eso tienes que aplicárselo a la ventana que quieras ocultar los botones, es un método de la clase QWidget, por ejemplo:

      MainWindow w;
      w.setWindowFlags(Qt::WindowCloseButtonHint);
      

      Un saludo

      Intenta explicar el problema lo más claro y detallado posible. Adjunta los errores y el código que creas da el error.
      Procura escribir correctamente y sin faltas de ortografía.

      Si la duda se solucionó, por favor, marca el tema como 'solucionado'.

      H 1 Reply Last reply
      0
      • juankiJ juanki

        Hola @Heyner-AO

        Eso tienes que aplicárselo a la ventana que quieras ocultar los botones, es un método de la clase QWidget, por ejemplo:

        MainWindow w;
        w.setWindowFlags(Qt::WindowCloseButtonHint);
        

        Un saludo

        H Offline
        H Offline
        Heyner AO
        wrote on last edited by
        #3

        Gracias @juanki

        Si es sólo una ventana llamemosla Interface

        ella contiene HEADERS (interface.h) , SOURCES( interface.cpp, main.cpp), FORM (Interface.ui), debería colocarla en la interface.cpp cierto?

        Saludos

        H 1 Reply Last reply
        0
        • H Heyner AO

          Gracias @juanki

          Si es sólo una ventana llamemosla Interface

          ella contiene HEADERS (interface.h) , SOURCES( interface.cpp, main.cpp), FORM (Interface.ui), debería colocarla en la interface.cpp cierto?

          Saludos

          H Offline
          H Offline
          Heyner AO
          wrote on last edited by
          #4

          @Heyner-AO
          Esto es lo que hecho de código


          Interface.h


          #ifndef INTERFACE_H

          #define INTERFACE_H

          #include <QMainWindow>

          namespace Ui {

          class Interface;

          }

          class Interface : public QMainWindow

          {

          Q_OBJECT

          public:

          explicit Interface(QWidget *parent = 0);

          ~Interface();
          

          private slots:

          void on_ON_VIB_2_clicked();
          
          
          void on_VIB_ALL_clicked();
          
          
          void on_ON_VIB_3_clicked();
          
          
          void on_ON_VIB_4_clicked();
          
          
          void on_Cerrar_VIB_clicked();
          

          private:

          Ui::Interface *ui;
          
          	
          };
          

          #endif // INTERFACE_H


          interface.cpp


          #include "interface.h"

          #include "ui_interface.h"

          bool STATUS_VIB[4] = {false,false,false,false}; //variable global de vib

          Interface::Interface(QWidget *parent) :

          QMainWindow(parent),
          

          ui(new Ui::Interface)

          {

          ui->setupUi(this);
          
          ui->Mensaje->setHidden(true);
          
          ui->ON_VIB_2->setStyleSheet("background-color: red");
          
          ui->ON_VIB_3->setStyleSheet("background-color: red");
          
          ui->ON_VIB_4->setStyleSheet("background-color: red");
          

          }

          Interface::~Interface()

          {

          delete ui;
          

          }

          void Interface::on_ON_VIB_2_clicked()

          {

          if(STATUS_VIB[0] == false) {
          ui->ON_VIB_2->setStyleSheet("background-color: green"); STATUS_VIB[0]= true;}

          else {ui->ON_VIB_2->setStyleSheet("background-color: red"); STATUS_VIB[0]= false;}

          }

          void Interface::on_ON_VIB_3_clicked()

          {

          if(STATUS_VIB[1] == false) {
          ui->ON_VIB_3->setStyleSheet("background-color: green"); STATUS_VIB[1]= true;}

          else {ui->ON_VIB_3->setStyleSheet("background-color: red"); STATUS_VIB[1]= false;}

          }


          main.cpp


          #include "interface.h"

          #include <QApplication>

          int main(int argc, char *argv[])

          {

          QApplication a(argc, argv);
          
          	Interface w;
          
          w.show();
          
          
          return a.exec();
          

          }


          juankiJ 1 Reply Last reply
          0
          • H Heyner AO

            @Heyner-AO
            Esto es lo que hecho de código


            Interface.h


            #ifndef INTERFACE_H

            #define INTERFACE_H

            #include <QMainWindow>

            namespace Ui {

            class Interface;

            }

            class Interface : public QMainWindow

            {

            Q_OBJECT

            public:

            explicit Interface(QWidget *parent = 0);

            ~Interface();
            

            private slots:

            void on_ON_VIB_2_clicked();
            
            
            void on_VIB_ALL_clicked();
            
            
            void on_ON_VIB_3_clicked();
            
            
            void on_ON_VIB_4_clicked();
            
            
            void on_Cerrar_VIB_clicked();
            

            private:

            Ui::Interface *ui;
            
            	
            };
            

            #endif // INTERFACE_H


            interface.cpp


            #include "interface.h"

            #include "ui_interface.h"

            bool STATUS_VIB[4] = {false,false,false,false}; //variable global de vib

            Interface::Interface(QWidget *parent) :

            QMainWindow(parent),
            

            ui(new Ui::Interface)

            {

            ui->setupUi(this);
            
            ui->Mensaje->setHidden(true);
            
            ui->ON_VIB_2->setStyleSheet("background-color: red");
            
            ui->ON_VIB_3->setStyleSheet("background-color: red");
            
            ui->ON_VIB_4->setStyleSheet("background-color: red");
            

            }

            Interface::~Interface()

            {

            delete ui;
            

            }

            void Interface::on_ON_VIB_2_clicked()

            {

            if(STATUS_VIB[0] == false) {
            ui->ON_VIB_2->setStyleSheet("background-color: green"); STATUS_VIB[0]= true;}

            else {ui->ON_VIB_2->setStyleSheet("background-color: red"); STATUS_VIB[0]= false;}

            }

            void Interface::on_ON_VIB_3_clicked()

            {

            if(STATUS_VIB[1] == false) {
            ui->ON_VIB_3->setStyleSheet("background-color: green"); STATUS_VIB[1]= true;}

            else {ui->ON_VIB_3->setStyleSheet("background-color: red"); STATUS_VIB[1]= false;}

            }


            main.cpp


            #include "interface.h"

            #include <QApplication>

            int main(int argc, char *argv[])

            {

            QApplication a(argc, argv);
            
            	Interface w;
            
            w.show();
            
            
            return a.exec();
            

            }


            juankiJ Offline
            juankiJ Offline
            juanki
            Moderators
            wrote on last edited by
            #5

            Hola @Heyner-AO

            Puedes ponerlo en varios lugares, por ejemplo en el main, donde creas la ventanan:

            QApplication a(argc, argv);
            
            Interface w;
            w.setWindowFlags(Qt::WindowCloseButtonHint);
            
            w.show();
            

            O en el constructor de la clase Interface. Y también podrías crear un método dentro de la clase Interface. Cuestión de gustos, personalmente lo hago como te puse en el ejemplo, aunque tampoco me disgusta la opción de ponerlo en el constructor.

            Un saludo

            Intenta explicar el problema lo más claro y detallado posible. Adjunta los errores y el código que creas da el error.
            Procura escribir correctamente y sin faltas de ortografía.

            Si la duda se solucionó, por favor, marca el tema como 'solucionado'.

            1 Reply Last reply
            0
            • H Offline
              H Offline
              Heyner AO
              wrote on last edited by
              #6

              Te lo agradezco mucho @juanki

              Saludos

              juankiJ 1 Reply Last reply
              0
              • H Heyner AO

                Te lo agradezco mucho @juanki

                Saludos

                juankiJ Offline
                juankiJ Offline
                juanki
                Moderators
                wrote on last edited by
                #7

                Tienes que ponerte las pilas con C++ @Heyner-AO , esto que hemos hecho aquí es muy básico y son cosas que no pueden hacerte perder el tiempo.

                Coge un curso de C++ de los muchos que hay por internet y ve dándole un vistazo para que te aclaren los conceptos.

                Por cierto, si se solucionó tu duda, marca el tema como solucionado :)

                Un saludo

                Intenta explicar el problema lo más claro y detallado posible. Adjunta los errores y el código que creas da el error.
                Procura escribir correctamente y sin faltas de ortografía.

                Si la duda se solucionó, por favor, marca el tema como 'solucionado'.

                1 Reply Last reply
                0

                • Login

                • Login or register to search.
                • First post
                  Last post
                0
                • Categories
                • Recent
                • Tags
                • Popular
                • Users
                • Groups
                • Search
                • Get Qt Extensions
                • Unsolved