• QtQt之QList使用


    相关资料:

    https://blog.csdn.net/ligare/article/details/122687947

    https://blog.csdn.net/jpchen609/article/details/4371594

    https://download.csdn.net/download/zhujianqiangqq/85641106      CSDN代码包下载

    实例代码:

    .pro

     1 QT       += core gui
     2 
     3 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
     4 
     5 CONFIG += c++11
     6 
     7 # The following define makes your compiler emit warnings if you use
     8 # any Qt feature that has been marked deprecated (the exact warnings
     9 # depend on your compiler). Please consult the documentation of the
    10 # deprecated API in order to know how to port your code away from it.
    11 DEFINES += QT_DEPRECATED_WARNINGS
    12 
    13 # You can also make your code fail to compile if it uses deprecated APIs.
    14 # In order to do so, uncomment the following line.
    15 # You can also select to disable deprecated APIs only up to a certain version of Qt.
    16 #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
    17 
    18 SOURCES += \
    19     main.cpp \
    20     mainwindow.cpp
    21 
    22 HEADERS += \
    23     mainwindow.h
    24 
    25 FORMS += \
    26     mainwindow.ui
    27 
    28 # Default rules for deployment.
    29 qnx: target.path = /tmp/$${TARGET}/bin
    30 else: unix:!android: target.path = /opt/$${TARGET}/bin
    31 !isEmpty(target.path): INSTALLS += target
    View Code

    main.cpp

     1 #include "mainwindow.h"
     2 
     3 #include <QApplication>
     4 
     5 int main(int argc, char *argv[])
     6 {
     7     QApplication a(argc, argv);
     8     MainWindow w;
     9     w.show();
    10     return a.exec();
    11 }
    View Code

    mainwindow.h

     1 #ifndef MAINWINDOW_H
     2 #define MAINWINDOW_H
     3 
     4 #include <QMainWindow>
     5 
     6 QT_BEGIN_NAMESPACE
     7 namespace Ui { class MainWindow; }
     8 QT_END_NAMESPACE
     9 
    10 class MainWindow : public QMainWindow
    11 {
    12     Q_OBJECT
    13 
    14 public:
    15     MainWindow(QWidget *parent = nullptr);
    16     ~MainWindow();
    17 
    18 private slots:
    19     void on_pushButton_4_clicked();
    20 
    21     void on_pushButton_3_clicked();
    22 
    23     void on_pushButton_2_clicked();
    24 
    25     void on_pushButton_clicked();
    26 
    27     void on_pushButton_8_clicked();
    28 
    29     void on_pushButton_7_clicked();
    30 
    31     void on_pushButton_10_clicked();
    32 
    33     void on_pushButton_9_clicked();
    34 
    35     void on_pushButton_5_clicked();
    36 
    37     void on_pushButton_6_clicked();
    38 
    39     void on_pushButton_11_clicked();
    40 
    41     void on_pushButton_13_clicked();
    42 
    43     void on_pushButton_12_clicked();
    44 
    45     void on_pushButton_15_clicked();
    46 
    47     void on_pushButton_16_clicked();
    48 
    49     void on_pushButton_14_clicked();
    50 
    51     void on_pushButton_17_clicked();
    52 
    53     void on_pushButton_18_clicked();
    54 
    55     void on_pushButton_20_clicked();
    56 
    57     void on_pushButton_19_clicked();
    58 
    59     void on_pushButton_21_clicked();
    60 
    61     void on_pushButton_22_clicked();
    62 
    63     void on_pushButton_23_clicked();
    64 
    65     void on_pushButton_24_clicked();
    66 
    67     void on_pushButton_25_clicked();
    68 
    69     void on_pushButton_26_clicked();
    70 
    71     void on_pushButton_27_clicked();
    72 
    73 private:
    74     Ui::MainWindow *ui;
    75     QList<QString> m_pList;// 定义成员
    76 };
    77 #endif // MAINWINDOW_H
    View Code

    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 
     10     setWindowTitle(QStringLiteral("Qt之QList使用"));
     11 }
     12 
     13 MainWindow::~MainWindow()
     14 {
     15     delete ui;
     16 }
     17 
     18 // 添加元素方式1
     19 void MainWindow::on_pushButton_4_clicked()
     20 {
     21     // 会添加到末尾
     22     m_pList << "1" << "2" << "3";
     23     m_pList << "4";
     24 
     25 }
     26 // 添加元素方式2
     27 void MainWindow::on_pushButton_3_clicked()
     28 {
     29     // 添加到末尾 不会覆盖原来的
     30     m_pList.append("5");
     31     m_pList.push_back("6");
     32 }
     33 // 添加到头部
     34 void MainWindow::on_pushButton_2_clicked()
     35 {
     36     // 添加到头部 不会覆盖原来的
     37     m_pList.prepend("0");
     38     m_pList.push_front("00");
     39 }
     40 // 添加元素方式4
     41 void MainWindow::on_pushButton_clicked()
     42 {
     43     // 在位置4插入元素
     44     m_pList.insert(4, "I4");
     45 }
     46 // 插入元素
     47 void MainWindow::on_pushButton_8_clicked()
     48 {
     49     m_pList.swap(1,3);// 交换位置1和位置3的元素
     50 }
     51 // 移动位置
     52 void MainWindow::on_pushButton_7_clicked()
     53 {
     54     m_pList.move(1,4);// 把第一个元素移到第四个元素,其他元素顺移
     55 }
     56 // 查找元素
     57 void MainWindow::on_pushButton_10_clicked()
     58 {
     59     // return该元素的下标值;若有第二个参数则表示查找第几个这个字符
     60     ui->textEdit->append(QString::number(m_pList.indexOf("mm")));
     61 }
     62 // 最后一个元素
     63 void MainWindow::on_pushButton_9_clicked()
     64 {
     65      QString str = m_pList.back();//返回最后一个元素 同list.last();
     66      ui->textEdit->append(str);
     67 }
     68 // 第一个元素1
     69 void MainWindow::on_pushButton_5_clicked()
     70 {
     71     QString str = m_pList.front();
     72     ui->textEdit->append(str);
     73 }
     74 // 第一个元素2
     75 void MainWindow::on_pushButton_6_clicked()
     76 {
     77     QString str = m_pList.first();
     78     ui->textEdit->append(str);
     79 }
     80 // 是否存在
     81 void MainWindow::on_pushButton_11_clicked()
     82 {
     83     bool nExist = m_pList.contains("23");//列表是否有某元素 成功返回true 否则false
     84     ui->textEdit->append(QString::number(nExist));
     85 }
     86 // 总元素
     87 void MainWindow::on_pushButton_13_clicked()
     88 {
     89     int nCount = m_pList.count();
     90     ui->textEdit->append(QString::number(nCount));
     91 }
     92 // 总元素2
     93 void MainWindow::on_pushButton_12_clicked()
     94 {
     95     int nCount = m_pList.length();
     96     ui->textEdit->append(QString::number(nCount));
     97 }
     98 // 相同元素
     99 void MainWindow::on_pushButton_15_clicked()
    100 {
    101     int nCount = m_pList.count("4");// 列表中有几个这样的元素
    102     ui->textEdit->append(QString::number(nCount));
    103 }
    104 // 删除元素
    105 void MainWindow::on_pushButton_16_clicked()
    106 {
    107     QString str = m_pList.takeAt(2); //删除第3个 并返回结果
    108     ui->textEdit->append(str);
    109 }
    110 // 删除元素2
    111 void MainWindow::on_pushButton_14_clicked()
    112 {
    113     m_pList.removeAt(3);
    114 }
    115 // 修改元素值
    116 void MainWindow::on_pushButton_17_clicked()
    117 {
    118     m_pList.replace(2,"bc");// 参数1 元素下标,参数2 修改的结果值
    119 }
    120 // 修改元素值2
    121 void MainWindow::on_pushButton_18_clicked()
    122 {
    123     m_pList[2] = "opopo";
    124 }
    125 // 所引遍历元素
    126 void MainWindow::on_pushButton_20_clicked()
    127 {
    128     QString str = "%1  %2  %3";
    129     for(int i = 0; i < m_pList.size(); ++i)
    130     {
    131         // at()操作比操作符[]更快,因为它不需要深度复制
    132         ui->textEdit->append(str.arg(m_pList[i]).arg(m_pList.at(i)).arg(m_pList.value(i)));
    133     }
    134 }
    135 // 迭代遍历元素
    136 void MainWindow::on_pushButton_19_clicked()
    137 {
    138     QString str = "it  %1";
    139     QList<QString>::iterator it;
    140     for(it = m_pList.begin(); it != m_pList.end(); ++it)
    141     {
    142         ui->textEdit->append(str.arg((*it)));
    143     }
    144 }
    145 // 清空
    146 void MainWindow::on_pushButton_21_clicked()
    147 {
    148     m_pList.clear();
    149 }
    150 // 迭代删除
    151 void MainWindow::on_pushButton_22_clicked()
    152 {
    153     QString str = "it  %1";
    154     QList<QString>::iterator it;
    155     for(it = m_pList.begin(); it != m_pList.end(); ++it)
    156     {
    157         if((*it)== "00")
    158         {
    159             it = m_pList.erase(it);// 删除从起始位置到结束位置的元素
    160         }
    161         ui->textEdit->append(str.arg((*it)));
    162     }
    163 }
    164 // 迭代区间删除
    165 void MainWindow::on_pushButton_23_clicked()
    166 {
    167     QList<QString>::iterator it;
    168     it = m_pList.begin();
    169     it = m_pList.erase(it, it+3);
    170 }
    171 // 删除多个
    172 void MainWindow::on_pushButton_24_clicked()
    173 {
    174     m_pList.removeAll("2");
    175 }
    176 // 删除最前值
    177 void MainWindow::on_pushButton_25_clicked()
    178 {
    179     m_pList.removeFirst();
    180 }
    181 // 删除最后值
    182 void MainWindow::on_pushButton_26_clicked()
    183 {
    184     m_pList.removeLast();
    185 }
    186 // 删除一个
    187 void MainWindow::on_pushButton_27_clicked()
    188 {
    189     m_pList.removeOne("2");
    190 }
    View Code

    mainwindow.ui

      1 <?xml version="1.0" encoding="UTF-8"?>
      2 <ui version="4.0">
      3  <class>MainWindow</class>
      4  <widget class="QMainWindow" name="MainWindow">
      5   <property name="geometry">
      6    <rect>
      7     <x>0</x>
      8     <y>0</y>
      9     <width>727</width>
     10     <height>433</height>
     11    </rect>
     12   </property>
     13   <property name="windowTitle">
     14    <string>MainWindow</string>
     15   </property>
     16   <widget class="QWidget" name="centralwidget">
     17    <layout class="QHBoxLayout" name="horizontalLayout">
     18     <item>
     19      <layout class="QVBoxLayout" name="verticalLayout">
     20       <item>
     21        <widget class="QLabel" name="label">
     22         <property name="text">
     23          <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;特点:支持随机访问,基于索引,中间插入或移除项速度快速&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
     24         </property>
     25        </widget>
     26       </item>
     27       <item>
     28        <widget class="QLabel" name="label_2">
     29         <property name="text">
     30          <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;注意:访问QList时,value(int i)查不到此值时会返回一个默认值0,at(int i)则会引起崩溃。&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
     31         </property>
     32        </widget>
     33       </item>
     34       <item>
     35        <widget class="QLabel" name="label_3">
     36         <property name="text">
     37          <string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
     38 &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
     39 p, li { white-space: pre-wrap; }
     40 &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'SimSun'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
     41 &lt;p style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;源文:https://blog.csdn.net/ligare/article/details/122687947&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
     42         </property>
     43        </widget>
     44       </item>
     45       <item>
     46        <widget class="QLabel" name="label_4">
     47         <property name="text">
     48          <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;原文:https://blog.csdn.net/jpchen609/article/details/4371594&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
     49         </property>
     50        </widget>
     51       </item>
     52       <item>
     53        <widget class="QTextEdit" name="textEdit"/>
     54       </item>
     55       <item>
     56        <layout class="QHBoxLayout" name="horizontalLayout_2">
     57         <item>
     58          <widget class="QPushButton" name="pushButton_4">
     59           <property name="toolTipDuration">
     60            <number>-14</number>
     61           </property>
     62           <property name="text">
     63            <string>添加元素方式1</string>
     64           </property>
     65          </widget>
     66         </item>
     67         <item>
     68          <widget class="QPushButton" name="pushButton_3">
     69           <property name="text">
     70            <string>添加元素方式2</string>
     71           </property>
     72          </widget>
     73         </item>
     74         <item>
     75          <widget class="QPushButton" name="pushButton_2">
     76           <property name="text">
     77            <string>添加到头部</string>
     78           </property>
     79          </widget>
     80         </item>
     81         <item>
     82          <widget class="QPushButton" name="pushButton">
     83           <property name="text">
     84            <string>插入元素</string>
     85           </property>
     86          </widget>
     87         </item>
     88         <item>
     89          <spacer name="horizontalSpacer_2">
     90           <property name="orientation">
     91            <enum>Qt::Horizontal</enum>
     92           </property>
     93           <property name="sizeHint" stdset="0">
     94            <size>
     95             <width>40</width>
     96             <height>20</height>
     97            </size>
     98           </property>
     99          </spacer>
    100         </item>
    101        </layout>
    102       </item>
    103       <item>
    104        <layout class="QHBoxLayout" name="horizontalLayout_3">
    105         <item>
    106          <widget class="QPushButton" name="pushButton_8">
    107           <property name="text">
    108            <string>交换位置</string>
    109           </property>
    110          </widget>
    111         </item>
    112         <item>
    113          <widget class="QPushButton" name="pushButton_7">
    114           <property name="text">
    115            <string>移动位置</string>
    116           </property>
    117          </widget>
    118         </item>
    119         <item>
    120          <spacer name="horizontalSpacer">
    121           <property name="orientation">
    122            <enum>Qt::Horizontal</enum>
    123           </property>
    124           <property name="sizeType">
    125            <enum>QSizePolicy::Expanding</enum>
    126           </property>
    127           <property name="sizeHint" stdset="0">
    128            <size>
    129             <width>40</width>
    130             <height>20</height>
    131            </size>
    132           </property>
    133          </spacer>
    134         </item>
    135        </layout>
    136       </item>
    137       <item>
    138        <layout class="QHBoxLayout" name="horizontalLayout_5">
    139         <item>
    140          <widget class="QPushButton" name="pushButton_10">
    141           <property name="text">
    142            <string>查找元素</string>
    143           </property>
    144          </widget>
    145         </item>
    146         <item>
    147          <widget class="QPushButton" name="pushButton_9">
    148           <property name="text">
    149            <string>最后一个元素</string>
    150           </property>
    151          </widget>
    152         </item>
    153         <item>
    154          <widget class="QPushButton" name="pushButton_5">
    155           <property name="text">
    156            <string>第一个元素</string>
    157           </property>
    158          </widget>
    159         </item>
    160         <item>
    161          <widget class="QPushButton" name="pushButton_6">
    162           <property name="text">
    163            <string>第一个元素2</string>
    164           </property>
    165          </widget>
    166         </item>
    167         <item>
    168          <widget class="QPushButton" name="pushButton_11">
    169           <property name="text">
    170            <string>是否存在</string>
    171           </property>
    172          </widget>
    173         </item>
    174         <item>
    175          <spacer name="horizontalSpacer_3">
    176           <property name="orientation">
    177            <enum>Qt::Horizontal</enum>
    178           </property>
    179           <property name="sizeHint" stdset="0">
    180            <size>
    181             <width>40</width>
    182             <height>20</height>
    183            </size>
    184           </property>
    185          </spacer>
    186         </item>
    187        </layout>
    188       </item>
    189       <item>
    190        <layout class="QHBoxLayout" name="horizontalLayout_9">
    191         <item>
    192          <widget class="QPushButton" name="pushButton_13">
    193           <property name="text">
    194            <string>总元素</string>
    195           </property>
    196          </widget>
    197         </item>
    198         <item>
    199          <widget class="QPushButton" name="pushButton_12">
    200           <property name="text">
    201            <string>总元素2</string>
    202           </property>
    203          </widget>
    204         </item>
    205         <item>
    206          <widget class="QPushButton" name="pushButton_15">
    207           <property name="text">
    208            <string>相同元素</string>
    209           </property>
    210          </widget>
    211         </item>
    212         <item>
    213          <spacer name="horizontalSpacer_4">
    214           <property name="orientation">
    215            <enum>Qt::Horizontal</enum>
    216           </property>
    217           <property name="sizeHint" stdset="0">
    218            <size>
    219             <width>40</width>
    220             <height>20</height>
    221            </size>
    222           </property>
    223          </spacer>
    224         </item>
    225        </layout>
    226       </item>
    227       <item>
    228        <layout class="QHBoxLayout" name="horizontalLayout_11">
    229         <item>
    230          <widget class="QPushButton" name="pushButton_16">
    231           <property name="text">
    232            <string>删除元素</string>
    233           </property>
    234          </widget>
    235         </item>
    236         <item>
    237          <widget class="QPushButton" name="pushButton_14">
    238           <property name="text">
    239            <string>删除元素2</string>
    240           </property>
    241          </widget>
    242         </item>
    243         <item>
    244          <widget class="QPushButton" name="pushButton_27">
    245           <property name="text">
    246            <string>删除一个</string>
    247           </property>
    248          </widget>
    249         </item>
    250         <item>
    251          <widget class="QPushButton" name="pushButton_24">
    252           <property name="text">
    253            <string>删除多个</string>
    254           </property>
    255          </widget>
    256         </item>
    257         <item>
    258          <widget class="QPushButton" name="pushButton_25">
    259           <property name="text">
    260            <string>删除最前值</string>
    261           </property>
    262          </widget>
    263         </item>
    264         <item>
    265          <widget class="QPushButton" name="pushButton_26">
    266           <property name="text">
    267            <string>删除最后值</string>
    268           </property>
    269          </widget>
    270         </item>
    271         <item>
    272          <widget class="QPushButton" name="pushButton_21">
    273           <property name="text">
    274            <string>清空</string>
    275           </property>
    276          </widget>
    277         </item>
    278         <item>
    279          <widget class="QPushButton" name="pushButton_22">
    280           <property name="text">
    281            <string>迭代删除</string>
    282           </property>
    283          </widget>
    284         </item>
    285         <item>
    286          <widget class="QPushButton" name="pushButton_23">
    287           <property name="text">
    288            <string>迭代区间删除</string>
    289           </property>
    290          </widget>
    291         </item>
    292         <item>
    293          <spacer name="horizontalSpacer_5">
    294           <property name="orientation">
    295            <enum>Qt::Horizontal</enum>
    296           </property>
    297           <property name="sizeHint" stdset="0">
    298            <size>
    299             <width>40</width>
    300             <height>20</height>
    301            </size>
    302           </property>
    303          </spacer>
    304         </item>
    305        </layout>
    306       </item>
    307       <item>
    308        <layout class="QHBoxLayout" name="horizontalLayout_13">
    309         <item>
    310          <widget class="QPushButton" name="pushButton_17">
    311           <property name="text">
    312            <string>修改元素值</string>
    313           </property>
    314          </widget>
    315         </item>
    316         <item>
    317          <widget class="QPushButton" name="pushButton_18">
    318           <property name="text">
    319            <string>修改元素值2</string>
    320           </property>
    321          </widget>
    322         </item>
    323         <item>
    324          <spacer name="horizontalSpacer_6">
    325           <property name="orientation">
    326            <enum>Qt::Horizontal</enum>
    327           </property>
    328           <property name="sizeHint" stdset="0">
    329            <size>
    330             <width>40</width>
    331             <height>20</height>
    332            </size>
    333           </property>
    334          </spacer>
    335         </item>
    336        </layout>
    337       </item>
    338       <item>
    339        <layout class="QHBoxLayout" name="horizontalLayout_17">
    340         <item>
    341          <widget class="QPushButton" name="pushButton_20">
    342           <property name="text">
    343            <string>所引遍历元素</string>
    344           </property>
    345          </widget>
    346         </item>
    347         <item>
    348          <widget class="QPushButton" name="pushButton_19">
    349           <property name="text">
    350            <string>迭代遍历元素</string>
    351           </property>
    352          </widget>
    353         </item>
    354         <item>
    355          <spacer name="horizontalSpacer_7">
    356           <property name="orientation">
    357            <enum>Qt::Horizontal</enum>
    358           </property>
    359           <property name="sizeHint" stdset="0">
    360            <size>
    361             <width>40</width>
    362             <height>20</height>
    363            </size>
    364           </property>
    365          </spacer>
    366         </item>
    367        </layout>
    368       </item>
    369      </layout>
    370     </item>
    371    </layout>
    372   </widget>
    373  </widget>
    374  <resources/>
    375  <connections/>
    376 </ui>
    View Code
  • 相关阅读:
    Mysql查看所有表的数据量
    Mysql存储过程查询数据插入别的表里。
    MYSQL查看最大连接数和修改最大连接数
    Centos7 安装字体库&中文字体
    docker-部署elk-6.1.3
    confluence输入数学公式之mathjax
    elasticsearch安装ansj分词器
    mongorestore 一次踩雷
    let‘s encrypt之nginx-https没有小锁
    微服务预想
  • 原文地址:https://www.cnblogs.com/FKdelphi/p/16375918.html
Copyright © 2020-2023  润新知