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. Set icon to QTreeWidgetItem causes crash
Forum Updated to NodeBB v4.3 + New Features

Set icon to QTreeWidgetItem causes crash

Scheduled Pinned Locked Moved General and Desktop
qtreewidgetitemcrashicon
12 Posts 4 Posters 5.9k 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.
  • S SGaist
    30 Aug 2015, 16:04

    Hi,

    Did you allocate treeItem before using it ?

    M Offline
    M Offline
    MohammadReza
    wrote on 30 Aug 2015, 16:10 last edited by MohammadReza
    #3

    @SGaist Yes. Here is the code:
    treeItem = new QTreeWidgetItem(ui->treeWidget);
    (Create new instance in a loop)

    1 Reply Last reply
    0
    • A Offline
      A Offline
      alex_malyu
      wrote on 30 Aug 2015, 20:15 last edited by
      #4

      Did you try to take any QTreeWidget example (or write your own which create QTreeWidget, adds one item) and add the code which sets icon to a single item?
      Can you post it?

      1 Reply Last reply
      0
      • M MohammadReza
        30 Aug 2015, 12:40

        Hi to all,
        I get icon of a file by this code:

        QFileInfo info(path);
        QFileIconProvider ip;
        QIcon icon=ip.icon(info);
        

        But when I set this icon to a column of a QTreeWidgetItem, it causes crash. Here is the code:
        treeItem->setIcon(0,icon);
        Thanks.

        R Offline
        R Offline
        raf924
        wrote on 30 Aug 2015, 20:31 last edited by
        #5

        @MohammadReza I don't know if it'll help but why don't you just write

        treeItem->setIcon(0,QIcon(path));
        

        Also what's the crash error?

        1 Reply Last reply
        0
        • S Offline
          S Offline
          SGaist
          Lifetime Qt Champion
          wrote on 30 Aug 2015, 20:38 last edited by
          #6

          Additionally, can you share the complete code snippet where you create and setup these items ?

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          0
          • M Offline
            M Offline
            MohammadReza
            wrote on 31 Aug 2015, 02:18 last edited by
            #7

            Here is the code:

                QDir dir;
                QFileInfoList qFIList = dir.drives();
            
                QTreeWidgetItem *treeItem;
            
                for(int i=0; i < qFIList.size(); i++)
                {
                    treeItem = new QTreeWidgetItem(ui->treeWidget);
                    treeItem->setText(0, qFIList.at(i).absolutePath());
            
                    QFileInfo info(qFIList.at(i).absolutePath());
                    QFileIconProvider ip;
                    QIcon icon=ip.icon(info);
                    treeItem->setIcon(0,icon);
            
                    treeItem->setText(1, "description");
                }
            

            This codes causes "has stopped working" crash but when I comment treeItem->setIcon(0,icon);
            everything works correctly.

            R 1 Reply Last reply 31 Aug 2015, 14:17
            0
            • M MohammadReza
              31 Aug 2015, 02:18

              Here is the code:

                  QDir dir;
                  QFileInfoList qFIList = dir.drives();
              
                  QTreeWidgetItem *treeItem;
              
                  for(int i=0; i < qFIList.size(); i++)
                  {
                      treeItem = new QTreeWidgetItem(ui->treeWidget);
                      treeItem->setText(0, qFIList.at(i).absolutePath());
              
                      QFileInfo info(qFIList.at(i).absolutePath());
                      QFileIconProvider ip;
                      QIcon icon=ip.icon(info);
                      treeItem->setIcon(0,icon);
              
                      treeItem->setText(1, "description");
                  }
              

              This codes causes "has stopped working" crash but when I comment treeItem->setIcon(0,icon);
              everything works correctly.

              R Offline
              R Offline
              raf924
              wrote on 31 Aug 2015, 14:17 last edited by raf924
              #8

              @MohammadReza

              QFileInfoList qFIList = dir.drives();
              

              that is your problem. what you want to do is

              QDir dir("/path/to/folder");
              QFileInfoList qFIList = dir.entryInfoList(QStringList()<<"*.jpg"<<"*.png",QDir::Files);
              
              1 Reply Last reply
              0
              • M Offline
                M Offline
                MohammadReza
                wrote on 1 Sept 2015, 03:27 last edited by
                #9

                I filter directories and drives and remove them but the problem still exist for files.

                When I use my code, most of the time icons of drive and files appear but after some second the stop working window error occurs:

                Problem signature:
                
                
                Problem Event Name: APPCRASH
                  Application Name: test-QTree.exe
                  Application Version:  0.0.0.0
                  Application Timestamp:    55e3f36b
                  Fault Module Name:    Qt5Widgetsd.dll
                  Fault Module Version: 5.5.0.0
                  Fault Module Timestamp:   559122fa
                  Exception Code:   c0000005
                  Exception Offset: 0000000000589022
                  OS Version:   6.1.7601.2.1.0.256.1
                  Locale ID:    1033
                  Additional Information 1: d87f
                  Additional Information 2: d87fc971aeb59f6c7e25e02ab99a0244
                  Additional Information 3: 1b94
                  Additional Information 4: 1b94c7629fda85c2d6bb0c6eacbea27e
                
                1 Reply Last reply
                0
                • S Offline
                  S Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on 1 Sept 2015, 21:53 last edited by
                  #10

                  What do you get if you run that through the debugger ?

                  Interested in AI ? www.idiap.ch
                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                  M 1 Reply Last reply 5 Sept 2015, 06:42
                  0
                  • S SGaist
                    1 Sept 2015, 21:53

                    What do you get if you run that through the debugger ?

                    M Offline
                    M Offline
                    MohammadReza
                    wrote on 5 Sept 2015, 06:42 last edited by
                    #11

                    @SGaist
                    There is no problem in debugging. I found an interesting thing:
                    I use this code to set an icon for a drive

                        QTreeWidgetItem *twi = ui->treeWidget->currentItem();
                        QString path = twi->text(0); //for example path is  L:/
                    
                        QFileInfo info(path);
                        QFileIconProvider ip;
                        QIcon icon=ip.icon(info);
                        twi->setIcon(0,icon);
                    

                    Everything is ok and the icon has been set and no crash anymore. But When the mouse cursor go around this item (twi) in QTreeList, the "has stopped working" error occurs.

                    1 Reply Last reply
                    0
                    • S Offline
                      S Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on 5 Sept 2015, 20:48 last edited by
                      #12

                      What is the stack trace when this happens ?

                      Interested in AI ? www.idiap.ch
                      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                      1 Reply Last reply
                      0

                      12/12

                      5 Sept 2015, 20:48

                      • Login

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