7.treeview

  • ui
  •  

  • mainwindow.h
     1 #ifndef MAINWINDOW_H
     2 #define MAINWINDOW_H
     3 
     4 #include <QMainWindow>
     5 #include <QStringData>
     6 #include <QStringList>
     7 #include <QStringListModel>
     8 
     9 namespace Ui {
    10 class MainWindow;
    11 }
    12 
    13 class MainWindow : public QMainWindow
    14 {
    15     Q_OBJECT
    16 
    17 public:
    18     explicit MainWindow(QWidget *parent = 0);
    19     ~MainWindow();
    20 
    21     void inittree();
    22 
    23 private slots:
    24     void on_pushButton_clicked();
    25 
    26 private:
    27     Ui::MainWindow *ui;
    28     QStringListModel *slm;
    29     QStringList *sl;
    30 };
    31 
    32 #endif // MAINWINDOW_H

     

  • mainwindow.cpp
     1 #include "mainwindow.h"
     2 #include "ui_mainwindow.h"
     3 
     4 MainWindow::MainWindow(QWidget *parent) :
     5     QMainWindow(parent),
     6     ui(new Ui::MainWindow)
     7 {
     8     ui->setupUi(this);
     9     inittree();
    10 }
    11 
    12 MainWindow::~MainWindow()
    13 {
    14     delete ui;
    15 }
    16 
    17 //创建一个树
    18 void MainWindow::inittree()
    19 {
    20     ui->treeWidget->clear();
    21     //初始化
    22     QTreeWidgetItem *group1 = new QTreeWidgetItem(ui->treeWidget);
    23     group1->setText(0,"父1");
    24 
    25     QTreeWidgetItem *sub1 = new QTreeWidgetItem(group1);
    26     QTreeWidgetItem *sub2 = new QTreeWidgetItem(group1);
    27     QTreeWidgetItem *sub3 = new QTreeWidgetItem(group1);
    28     sub1->setText(0,"子1");
    29     sub2->setText(0,"子2");
    30     sub3->setText(0,"子3");
    31 
    32     QTreeWidgetItem *ssub1 = new QTreeWidgetItem(sub1);
    33     QTreeWidgetItem *ssub2 = new QTreeWidgetItem(sub1);
    34     QTreeWidgetItem *ssub3 = new QTreeWidgetItem(sub1);
    35     ssub1->setText(0,"孙1");
    36     ssub2->setText(0,"孙2");
    37     ssub3->setText(0,"孙3");
    38 
    39     QTreeWidgetItem *sssub1 = new QTreeWidgetItem(sub2);
    40     QTreeWidgetItem *sssub2 = new QTreeWidgetItem(sub2);
    41     QTreeWidgetItem *sssub3 = new QTreeWidgetItem(sub2);
    42     sssub1->setText(0,"孙1");
    43     sssub2->setText(0,"孙2");
    44     sssub3->setText(0,"孙3");
    45 
    46     QTreeWidgetItem *ssssub1 = new QTreeWidgetItem(sub3);
    47     QTreeWidgetItem *ssssub2 = new QTreeWidgetItem(sub3);
    48     QTreeWidgetItem *ssssub3 = new QTreeWidgetItem(sub3);
    49     ssssub1->setText(0,"孙1");
    50     ssssub2->setText(0,"孙2");
    51     ssssub3->setText(0,"孙3");
    52 }
    53 
    54 void MainWindow::on_pushButton_clicked()
    55 {
    56     //模型
    57     slm = new QStringListModel(this);
    58     //列表
    59     sl = new QStringList();
    60     //迭代器遍历树
    61     QTreeWidgetItemIterator it(ui->treeWidget);
    62     while(*it)
    63     {
    64         sl->append((*it)->text(0));
    65         ++it;
    66     }
    67 
    68     //模型链接列表
    69     slm->setStringList(*sl);
    70     ui->listView->setModel(slm);
    71 }

     

posted @ 2018-04-08 13:29  喵小喵~  阅读(164)  评论(0编辑  收藏  举报