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
Forum Updated to NodeBB v4.3 + New Features

WindowSystemMenuHint strange bug

Scheduled Pinned Locked Moved Solved General and Desktop
14 Posts 3 Posters 1.8k Views 1 Watching
  • 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
    #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