hi everybody

When I click on the "Click me" button , I get the message :

The program has unexpectedly finished.
Then program is closed !

TreeWidget.gif

why ?!

Qt Code:
  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3. #include <QString>
  4. #include <QMainWindow>
  5. #include <QtCore>
  6. #include <QtGui>
  7. #include <QTreeWidget>
  8.  
  9. namespace Ui {
  10. class MainWindow;
  11. }
  12.  
  13. class MainWindow : public QMainWindow
  14. {
  15. Q_OBJECT
  16. void addRoot(QString name,QString dec);
  17. void addChild(QTreeWidgetItem *parent,QString name,QString dec);
  18. public:
  19. explicit MainWindow(QWidget *parent = 0);
  20. ~MainWindow();
  21.  
  22.  
  23. private slots:
  24. void on_pushButton_clicked();
  25.  
  26. private:
  27. Ui::MainWindow *ui;
  28. };
  29.  
  30. #endif // MAINWINDOW_H
To copy to clipboard, switch view to plain text mode 

Qt Code:
  1. #include "mainwindow.h"
  2. #include "ui_mainwindow.h"
  3. #include <QTreeWidget>
  4. #include <QFont>
  5. MainWindow::MainWindow(QWidget *parent) :
  6. QMainWindow(parent),
  7. ui(new Ui::MainWindow)
  8. {
  9. ui->setupUi(this);
  10. ui->treeWidget->setColumnCount(2);
  11. addRoot("Hello","World");
  12. }
  13.  
  14. MainWindow::~MainWindow()
  15. {
  16. delete ui;
  17. }
  18.  
  19. void MainWindow::addRoot(QString name,QString dec)
  20. {
  21. QTreeWidgetItem *ptr = new QTreeWidgetItem(ui->treeWidget) ;
  22. ptr->setText(0,name);
  23. ptr->setText(1,dec);
  24. addChild(ptr,name,dec);
  25. }
  26. void MainWindow::addChild(QTreeWidgetItem *parent,QString name,QString dec)
  27. {
  28. ptr1->setText(0,name);
  29. ptr1->setText(1,dec);
  30. parent->addChild(ptr1);
  31. }
  32.  
  33. void MainWindow::on_pushButton_clicked()
  34. {
  35. QTreeWidgetItem *ptr = ui->treeWidget->currentItem();
  36.  
  37. for(int i=0 ; i<100 ;i++)
  38. {
  39. ui->progressBar->setValue(i);
  40. QThread::msleep(2);
  41. }
  42. if(ptr->isSelected())
  43. {
  44. ptr->setBackgroundColor(0,Qt::red);
  45. ptr->setBackgroundColor(1,Qt::red);
  46. }
  47. }
To copy to clipboard, switch view to plain text mode