Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. WindowSystemMenuHint strange bug

WindowSystemMenuHint strange bug

Scheduled Pinned Locked Moved Solved General and Desktop
14 Posts 3 Posters 1.8k 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.
  • EngelardE Offline
    EngelardE Offline
    Engelard
    wrote on last edited by Engelard
    #1

    Hi everybody. I just added new fresh .ui file with class which inherits QDialog for extra window of my main project. Add in ui some layout and labels, it looks as it should, everything ok on the following screenshot:

    0_1540970770088_proper.jpg

    But when i try to remove that unnecessary MenuHint(question mark) like that:

    myNewDialog->setWindowFlags(Qt::WindowSystemMenuHint);
    

    Or. By adding such thing in to constructor of that child dialog:

    this->setWindowFlags(Qt::WindowSystemMenuHint);
    

    The window will start looking, i would say, strange:

    0_1540970976451_unproper.jpg

    The code in constructor of my main class:

    myNewDialog = new FinalResult(this);   //class of child window
    myNewDialog->show();
    
    1 Reply Last reply
    0
    • EngelardE Offline
      EngelardE Offline
      Engelard
      wrote on last edited by
      #2

      Why that stuff even enabled by default...

      aha_1980A 1 Reply Last reply
      0
      • EngelardE Offline
        EngelardE Offline
        Engelard
        wrote on last edited by
        #3

        Maybe anybody knows another way to hide that button?

        1 Reply Last reply
        0
        • EngelardE Engelard

          Why that stuff even enabled by default...

          aha_1980A Offline
          aha_1980A Offline
          aha_1980
          Lifetime Qt Champion
          wrote on last edited by aha_1980
          #4

          @Engelard isn't that ...HelpButtonHint?

          which type of widget is your dialog? it may be the platform defaiult to show it.

          Qt has to stay free or it will die.

          EngelardE 1 Reply Last reply
          0
          • aha_1980A aha_1980

            @Engelard isn't that ...HelpButtonHint?

            which type of widget is your dialog? it may be the platform defaiult to show it.

            EngelardE Offline
            EngelardE Offline
            Engelard
            wrote on last edited by
            #5

            @aha_1980 said in WindowSystemMenuHint strange bug:

            which type of widget is your dialog?

            QDialog

            1 Reply Last reply
            0
            • mrjjM Offline
              mrjjM Offline
              mrjj
              Lifetime Qt Champion
              wrote on last edited by
              #6

              Hi
              The reason for the odd look is due to you remove all its flags
              setWindowFlags(Qt::WindowSystemMenuHint);
              Now ONLY WindowSystemMenuHint is set. not Dialog and all the others it needs.
              You need to do
              setWindowFlags(windowFlags() & ~Qt::WindowSystemMenuHint);
              which takes the current flags and bitwise disable only hint.

              EngelardE 1 Reply Last reply
              2
              • mrjjM mrjj

                Hi
                The reason for the odd look is due to you remove all its flags
                setWindowFlags(Qt::WindowSystemMenuHint);
                Now ONLY WindowSystemMenuHint is set. not Dialog and all the others it needs.
                You need to do
                setWindowFlags(windowFlags() & ~Qt::WindowSystemMenuHint);
                which takes the current flags and bitwise disable only hint.

                EngelardE Offline
                EngelardE Offline
                Engelard
                wrote on last edited by Engelard
                #7

                @mrjj

                Very good stuff. But.

                1. as i understand, it set it from windowFlags() which comes from parent, it do totally no effect if i would try set it up from it's own flags:
                myNewDialog->windowFlags()
                
                1. As it appliable only from parent(QMainWindow), it adds maximize and minimize hints, maximize is unnecessary, so i tried to remove it, but it only disable it, not hide:
                myNewDialog->setWindowFlags(windowFlags() & (~Qt::WindowSystemMenuHint & ~Qt::WindowMaximizeButtonHint));
                
                mrjjM 1 Reply Last reply
                0
                • EngelardE Engelard

                  @mrjj

                  Very good stuff. But.

                  1. as i understand, it set it from windowFlags() which comes from parent, it do totally no effect if i would try set it up from it's own flags:
                  myNewDialog->windowFlags()
                  
                  1. As it appliable only from parent(QMainWindow), it adds maximize and minimize hints, maximize is unnecessary, so i tried to remove it, but it only disable it, not hide:
                  myNewDialog->setWindowFlags(windowFlags() & (~Qt::WindowSystemMenuHint & ~Qt::WindowMaximizeButtonHint));
                  
                  mrjjM Offline
                  mrjjM Offline
                  mrjj
                  Lifetime Qt Champion
                  wrote on last edited by
                  #8

                  @Engelard
                  Oh, must be from dialog :)

                  myNewDialog->setWindowFlags(myNewDialog->windowFlags() & (~Qt::WindowSystemMenuHint & ~Qt::WindowMaximizeButtonHint));

                  EngelardE 1 Reply Last reply
                  0
                  • mrjjM Offline
                    mrjjM Offline
                    mrjj
                    Lifetime Qt Champion
                    wrote on last edited by
                    #9

                    Not all combinations works all types of windows.

                    1 Reply Last reply
                    0
                    • mrjjM mrjj

                      @Engelard
                      Oh, must be from dialog :)

                      myNewDialog->setWindowFlags(myNewDialog->windowFlags() & (~Qt::WindowSystemMenuHint & ~Qt::WindowMaximizeButtonHint));

                      EngelardE Offline
                      EngelardE Offline
                      Engelard
                      wrote on last edited by
                      #10

                      @mrjj i tried at first from my object(child dialog), not working, tried, can't understand why.

                      1 Reply Last reply
                      0
                      • mrjjM Offline
                        mrjjM Offline
                        mrjj
                        Lifetime Qt Champion
                        wrote on last edited by
                        #11

                        Hi
                        I tried

                        CustomDialog::CustomDialog(QWidget *parent) :
                            QDialog(parent),
                            ui(new Ui::CustomDialog)
                        {
                            ui->setupUi(this);
                            setWindowFlags(Qt::WindowSystemMenuHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint);
                        }
                        
                        
                        

                        alt text

                        EngelardE 1 Reply Last reply
                        0
                        • EngelardE Offline
                          EngelardE Offline
                          Engelard
                          wrote on last edited by
                          #12

                          Lol i figure it out, with little help of Qt documentation and imagination:

                          resultsWindow = new FinalResult(this);
                          Qt::WindowFlags flags = 0;
                          flags = Qt::Dialog;
                          
                          resultsWindow->setWindowFlags(flags |= Qt::WindowSystemMenuHint); // question mark removed, but close button now disabled
                          resultsWindow->setWindowFlag(Qt::WindowCloseButtonHint, true);
                          
                          1 Reply Last reply
                          1
                          • mrjjM mrjj

                            Hi
                            I tried

                            CustomDialog::CustomDialog(QWidget *parent) :
                                QDialog(parent),
                                ui(new Ui::CustomDialog)
                            {
                                ui->setupUi(this);
                                setWindowFlags(Qt::WindowSystemMenuHint | Qt::WindowTitleHint | Qt::WindowCloseButtonHint);
                            }
                            
                            
                            

                            alt text

                            EngelardE Offline
                            EngelardE Offline
                            Engelard
                            wrote on last edited by
                            #13

                            @mrjj said in WindowSystemMenuHint strange bug:

                            Hi
                            I tried

                            I try that stuff long ago, no efforts of doing that attempts from the constructor of child QDialog were paid...

                            mrjjM 1 Reply Last reply
                            0
                            • EngelardE Engelard

                              @mrjj said in WindowSystemMenuHint strange bug:

                              Hi
                              I tried

                              I try that stuff long ago, no efforts of doing that attempts from the constructor of child QDialog were paid...

                              mrjjM Offline
                              mrjjM Offline
                              mrjj
                              Lifetime Qt Champion
                              wrote on last edited by
                              #14

                              @Engelard
                              ok, odd. worked for my dialog.

                              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