Qt工作笔记-QTreeWidget求总结点数以及此树中最多孩子的个数(非递归)
生活随笔
收集整理的這篇文章主要介紹了
Qt工作笔记-QTreeWidget求总结点数以及此树中最多孩子的个数(非递归)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
話不多說,運行截圖如下:
代碼如下:
widget.h
#ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTreeWidgetItemIterator> #include <QStringList>namespace Ui { class Widget; }class Widget : public QWidget {Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();public slots:void pressBtn();private:Ui::Widget *ui; };#endif // WIDGET_Hwidget.cpp#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui->setupUi(this);QStringList header;header.append(tr("第一列"));header.append(tr("第二列"));header.append(tr("第三列"));ui->treeWidget->setHeaderLabels(header);QTreeWidgetItem *topItem1=new QTreeWidgetItem();topItem1->setText(0,tr("第一個頭結點"));ui->treeWidget->addTopLevelItem(topItem1);QTreeWidgetItem *topItem2=new QTreeWidgetItem();topItem2->setText(0,tr("第二個頭結點"));ui->treeWidget->addTopLevelItem(topItem2);ui->treeWidget->setColumnWidth(0,150);for(int i=1;i<=5;i++){QTreeWidgetItem *newItem=new QTreeWidgetItem();newItem->setText(0,tr("第")+QString::number(i)+"個子結點");topItem1->addChild(newItem);}ui->treeWidget->expandItem(topItem1);connect(ui->pushButton,SIGNAL(clicked(bool)),this,SLOT(pressBtn()));}void Widget::pressBtn(){QTreeWidgetItemIterator it(ui->treeWidget);int CountNum=0; //注意int的范圍int MaxNodeNum=0; //注意int的范圍MaxNodeNum=(*it)->childCount();while (*it) {CountNum++;if((*it)->childCount()>MaxNodeNum)MaxNodeNum=(*it)->childCount();it++;}ui->label_3->setText(QString::number(CountNum)+tr("個"));ui->label_4->setText(QString::number(MaxNodeNum)+tr("個")); }Widget::~Widget() {delete ui; }
main.cpp
#include "widget.h" #include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); }總結
以上是生活随笔為你收集整理的Qt工作笔记-QTreeWidget求总结点数以及此树中最多孩子的个数(非递归)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ opengl 点的绘制
- 下一篇: C++|Qt中QTreeWidget基本