Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    Qt Academy Launch in California!

    Solved QTreeWidget item font is different if going over widget width

    General and Desktop
    4
    8
    628
    Loading More Posts
    • 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.
    • P
      Pauly last edited by

      In a QTreeWidget, item font is different for those going over the widget width. What is going on and how can I fix it? Also for some reason the last decoration icon is different from others. I don't think I make any changes to QTreeWidget but not sure, where should I look to make these look alike? Thank you.

      0_1559625433306_364297d5-a359-42ae-82ef-ddc61f167189-image.png

      J.Hilk 1 Reply Last reply Reply Quote 0
      • J.Hilk
        J.Hilk Moderators @Pauly last edited by J.Hilk

        @Pauly

        seems strange but without actual code, no-one will really be able to help you.

        Do you have a minimal compile-able example at hand?

        Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct

        Qt Needs YOUR vote: https://bugreports.qt.io/browse/QTQAINFRA-4121


        Q: What's that?
        A: It's blue light.
        Q: What does it do?
        A: It turns blue.

        1 Reply Last reply Reply Quote 1
        • V
          VRonin last edited by

          Are you using a stylesheet or a custom style?

          "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
          ~Napoleon Bonaparte

          On a crusade to banish setIndexWidget() from the holy land of Qt

          1 Reply Last reply Reply Quote 1
          • P
            Pauly last edited by

            Here is the code. It is pretty straightforward that I just put a list of QStringList into the tree widget, which is added in designer. No stylesheet etc was set.

            The original post shows child items, but this happen to top level items too. Whenever the item is longer than the widget width, the font of item will be different. I try to put text in QLabel then set that to tree widget, then the font will be the same. However I think we should not need to go the extra step to make tree widget behave... any advise? Thanks.

            ui->setupUi(this);
            QList<QStringList> msg;
            for(int i=0;i<msg.size();++i){
                if(msg.at(i).size()>0){
                    QTreeWidgetItem * topLevel = new QTreeWidgetItem();
                    topLevel->setText(0, msg.at(i).at(0));
                    ui->myTreeWidget->addTopLevelItem(topLevel);
                    for(int j=1;j<msg.at(i).size();++j){
                        QTreeWidgetItem * item = new QTreeWidgetItem();
                        item->setText(0,msg.at(i).at(j));
                        topLevel->addChild(item);
                    }
                }
            }
            ui->myTreeWidget->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
            show();
            
            1 Reply Last reply Reply Quote 0
            • Christian Ehrlicher
              Christian Ehrlicher Lifetime Qt Champion last edited by

              Which Qt version do you use? It was fixed in 5.12

              Qt has to stay free or it will die.

              1 Reply Last reply Reply Quote 4
              • P
                Pauly last edited by

                I'm using

                Qt Creator 4.8.2
                Based on Qt 5.12.1 (MSVC 2015, 32 bit)

                should I upgrade? Thanks.

                1 Reply Last reply Reply Quote 0
                • Christian Ehrlicher
                  Christian Ehrlicher Lifetime Qt Champion last edited by

                  I don't want to know what QtCreator you're using but what Qt version you're using to build your programs. It needs to be at least 5.12.2: https://bugreports.qt.io/browse/QTBUG-56759

                  Qt has to stay free or it will die.

                  1 Reply Last reply Reply Quote 2
                  • P
                    Pauly last edited by

                    I see. Thanks for the note.

                    Also I found that doing "setFont(QApplication::font());" fixes the issue.

                    1 Reply Last reply Reply Quote 0
                    • First post
                      Last post