Qt写的输出目录结构的小程序


自己用的一个小程序,
比如说看Qt的Example把,想做个目录版的记录,一个一个自己记目录文件太麻烦了。
看Linux源码,想对整体源码有个把握,肯定要了解整个目录树结构,一个一个看与记录太麻烦了吧。
于是就写这么个小东西来用

 

主要代码

void Widget::outputDir(QDir &dir){
    if(opDeep>deep){
        return;
    }
    else{
        ++opDeep;
    }
    QString tempPre(pre);
    pre=QString(pre.append("    "));
    QDir opDir=QDir(dir.absolutePath(),"*",QDir::DirsFirst,QDir::Dirs);
    QDirIterator it(opDir,QDirIterator::NoIteratorFlags);
    QDir tempDir;
    it.next();it.next();//空掉./ ../
    while(it.hasNext()){//输出文件夹,进行递归
        tempDir=QDir(it.next());
        contain.append(QString("/n").append(pre).append(tempDir.dirName()));
        outputDir(tempDir);
    }
    if(file){//输出文件
        opDir=QDir(dir.absolutePath(),"*.*",QDir::DirsFirst,QDir::Files);
        QDirIterator it(opDir,QDirIterator::NoIteratorFlags);
        QDir tempDir;
        it.next();it.next();//空掉./ ../
        while(it.hasNext()){
            tempDir=QDir(it.next());
            contain.append(QString("/n").append(pre).append(tempDir.dirName()));
        }
    }
    pre=tempPre;
    --opDeep;
}

 

ui

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>Widget</class>
 <widget class="QWidget" name="Widget">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>600</width>
    <height>400</height>
   </rect>
  </property>
  <property name="minimumSize">
   <size>
    <width>600</width>
    <height>400</height>
   </size>
  </property>
  <property name="maximumSize">
   <size>
    <width>600</width>
    <height>400</height>
   </size>
  </property>
  <property name="windowTitle">
   <string>输出目录内容</string>
  </property>
  <widget class="QWidget" name="gridWidget" native="true">
   <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
     <width>600</width>
     <height>400</height>
    </rect>
   </property>
   <layout class="QGridLayout" name="gridLayout">
    <item row="0" column="1">
     <widget class="QPushButton" name="pushButton">
      <property name="text">
       <string>选择目录</string>
      </property>
     </widget>
    </item>
    <item row="0" column="4">
     <widget class="QLineEdit" name="lineEdit"/>
    </item>
    <item row="6" column="4">
     <widget class="QTextEdit" name="textEdit"/>
    </item>
    <item row="6" column="1">
     <widget class="QLabel" name="label">
      <property name="text">
       <string> 输出:</string>
      </property>
     </widget>
    </item>
    <item row="1" column="4" rowspan="2">
     <widget class="QGroupBox" name="horizontalGroupBox">
      <layout class="QHBoxLayout" name="horizontalLayout">
       <item>
        <widget class="QRadioButton" name="radioButton">
         <property name="text">
          <string>文件夹</string>
         </property>
         <property name="checked">
          <bool>true</bool>
         </property>
        </widget>
       </item>
       <item>
        <widget class="QRadioButton" name="radioButton_2">
         <property name="text">
          <string>所有文件</string>
         </property>
        </widget>
       </item>
      </layout>
     </widget>
    </item>
    <item row="1" column="1" rowspan="2">
     <widget class="QLabel" name="label_2">
      <property name="text">
       <string> 粒度:</string>
      </property>
     </widget>
    </item>
    <item row="3" column="1">
     <widget class="QLabel" name="label_3">
      <property name="text">
       <string> 深度:</string>
      </property>
     </widget>
    </item>
    <item row="3" column="4">
     <widget class="QWidget" name="horizontalWidget" native="true">
      <layout class="QHBoxLayout" name="horizontalLayout_2">
       <item>
        <widget class="QSlider" name="horizontalSlider">
         <property name="maximum">
          <number>5</number>
         </property>
         <property name="value">
          <number>2</number>
         </property>
         <property name="orientation">
          <enum>Qt::Horizontal</enum>
         </property>
        </widget>
       </item>
       <item>
        <widget class="QLCDNumber" name="lcdNumber">
         <property name="segmentStyle">
          <enum>QLCDNumber::Flat</enum>
         </property>
         <property name="intValue" stdset="0">
          <number>2</number>
         </property>
        </widget>
       </item>
      </layout>
     </widget>
    </item>
   </layout>
  </widget>
 </widget>
 <layoutdefault spacing="6" margin="11"/>
 <resources/>
 <connections/>
</ui>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值