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

QMessageBox too small

Scheduled Pinned Locked Moved General and Desktop
14 Posts 6 Posters 23.1k Views 2 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.
  • L Offline
    L Offline
    leon.anavi
    wrote on last edited by
    #3

    This sounds strange. Although I did not find similar issues reported for Qt 4.8 at "jira":https://bugreports.qt-project.org it might be a bug.

    Anyway I found out "this proposition for a work around at qtcenter.org that you may try":http://www.qtcentre.org/threads/22298-QMessageBox-Controlling-the-width?p=113348#post113348:

    @
    QMessageBox msg(this);
    msg.setIconPixmap(QPixmap(":/error.svg"));
    msg.setText("No images loaded");
    msg.setInformativeText("There are no images in the list. Please create or load a project");
    msg.setStandardButtons(QMessageBox::Ok);
    msg.setDefaultButton(QMessageBox::Ok);

    QSpacerItem* horizontalSpacer = new QSpacerItem(500, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
    QGridLayout* layout = (QGridLayout*)msg.layout();
    layout->addItem(horizontalSpacer, layout->rowCount(), 0, 1, layout->columnCount());
    msg.exec();
    @

    http://anavi.org/

    1 Reply Last reply
    2
    • S Offline
      S Offline
      Serenity
      wrote on last edited by
      #4

      Thank you, it seems to work with your work around.
      But I am still wondering, why it doesn't resize by itself.

      I have also another similar program, where the QMessageBox works well and I tried to find out their difference with no result. It's a little bit strange.

      @bootchk: I am only wondering, why the size of the window is too small in the width. Maybe somebody knows the problem. I thought also, that it could be something related to the parent widget, but also without that, the window is to small in the width. And inanother similar program, it works well.

      1 Reply Last reply
      0
      • L Offline
        L Offline
        leon.anavi
        wrote on last edited by
        #5

        [quote author="Serenity" date="1360759711"]Thank you, it seems to work with your work around.
        But I am still wondering, why it doesn't resize by itself.
        [/quote]

        I have no idea with setFixedWidth didn't work as expected too. In fact the work around is not mine. As I said I found it at "an old thread at Qt Centre":http://www.qtcentre.org/threads/22298-QMessageBox-Controlling-the-width?p=113348#post113348

        http://anavi.org/

        1 Reply Last reply
        0
        • W Offline
          W Offline
          Wonson
          wrote on last edited by
          #6

          After 3 years, it is still not fixed

          mrjjM 1 Reply Last reply
          1
          • W Wonson

            After 3 years, it is still not fixed

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

            @Wonson
            well maybe it was never reported ?

            1 Reply Last reply
            0
            • D Offline
              D Offline
              DougyDrumz
              wrote on last edited by
              #8

              Has anybody found a solutions to this? I tried http://www.qtcentre.org/threads/22298-QMessageBox-Controlling-the-width?p=113348#post113348 to no avail. Is seems my QMessageBox won't expand beyond it's internal maximum width.

              Dougy Drumz

              mrjjM 1 Reply Last reply
              0
              • D DougyDrumz

                Has anybody found a solutions to this? I tried http://www.qtcentre.org/threads/22298-QMessageBox-Controlling-the-width?p=113348#post113348 to no avail. Is seems my QMessageBox won't expand beyond it's internal maximum width.

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

                @DougyDrumz
                hi this does work for me

                #include <QMessageBox>
                #include <QGridLayout>
                #include <QSpacerItem>
                
                void MainWindow::on_pushButton_released()
                {
                
                    QMessageBox msg;
                    msg.setIconPixmap(QPixmap(":/error.svg"));
                    msg.setText("No images loaded");
                    msg.setInformativeText("There are no images in the list. Please create or load a project");
                    msg.setStandardButtons(QMessageBox::Ok);
                    msg.setDefaultButton(QMessageBox::Ok);
                    QSpacerItem* horizontalSpacer = new QSpacerItem(800, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
                    QGridLayout* layout = (QGridLayout*)msg.layout();
                    layout->addItem(horizontalSpacer, layout->rowCount(), 0, 1, layout->columnCount());
                    msg.exec();
                }
                
                1 Reply Last reply
                0
                • D Offline
                  D Offline
                  DougyDrumz
                  wrote on last edited by
                  #10

                  This doesn't work for me. One thing I've noticed: You're opening this QMessageBox in a QMainWindow. My QMessageBox is opened in main. This is because I open the QMessageBox using an executable from the command line. It's not tied to any app. Could that be an issue? If it helps, I'm running Qt 4.6.2 on RHEL 6 machine.

                  Dougy Drumz

                  mrjjM 1 Reply Last reply
                  0
                  • D DougyDrumz

                    This doesn't work for me. One thing I've noticed: You're opening this QMessageBox in a QMainWindow. My QMessageBox is opened in main. This is because I open the QMessageBox using an executable from the command line. It's not tied to any app. Could that be an issue? If it helps, I'm running Qt 4.6.2 on RHEL 6 machine.

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

                    @DougyDrumz
                    win 7, qt 5.5
                    well im not using "this" from mainwindow ,
                    so should be same as in main.cpp
                    Let me try.
                    update:
                    also works from main.

                    Maybe its diff between win and linux. But looking at code it seems that
                    its build with qt widgets so should function the same.

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

                      hi
                      could you try for test to run this

                      #include <QList>
                      void Pop() {
                       QMessageBox msg;
                       msg.setIconPixmap(QPixmap(":/error.svg"));
                       msg.setText("No images loaded");
                       msg.setInformativeText("There are no images in the list. Please create or load a project");
                       msg.setStandardButtons(QMessageBox::Ok);
                       msg.setDefaultButton(QMessageBox::Ok);
                       QList<QObject*> widgets = msg.findChildren<QObject*>();
                       for (int var = 0; var < widgets.size(); ++var) {
                         qDebug() << widgets[var]->objectName() << widgets[var]->metaObject()->className();
                       }
                       msg.exec();
                      }
                      

                      its lists all objects.
                      my list is
                      "qt_msgboxex_icon_label" QLabel
                      "qt_msgbox_label" QLabel
                      "qt_msgbox_buttonbox" QDialogButtonBox
                      "" QHBoxLayout
                      "" QPushButton
                      "" QGridLayout
                      "qt_msgbox_informativelabel" QLabel
                      just too see if inner layout is different for you.

                      1 Reply Last reply
                      0
                      • D Offline
                        D Offline
                        DougyDrumz
                        wrote on last edited by
                        #13

                        Same objects, different order:

                        "" QGridLayout
                        "qt_msgboxex_icon_label" QLabel
                        "qt_msgbox_label" QLabel
                        "qt_msgbox_buttonbox" QDialogButtonBox
                        "" QHBoxLayout
                        "" QPushButton
                        "qt_msgbox_informativelabel" QLabel

                        Dougy Drumz

                        mrjjM 1 Reply Last reply
                        0
                        • D DougyDrumz

                          Same objects, different order:

                          "" QGridLayout
                          "qt_msgboxex_icon_label" QLabel
                          "qt_msgbox_label" QLabel
                          "qt_msgbox_buttonbox" QDialogButtonBox
                          "" QHBoxLayout
                          "" QPushButton
                          "qt_msgbox_informativelabel" QLabel

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

                          @DougyDrumz
                          Ok, nothing exciting there.
                          looking at the code in qmessagebox.cpp i see nothing that should it do different
                          on linux.
                          Have you looked in your version ?
                          seems like it's a lost cause as most of the stuff is in private.

                          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