0
点赞
收藏
分享

微信扫一扫

Qt-Qt之QList使用

皮皮球场 2022-10-20 阅读 207

Qt-Qt之QList使用_.net



实例代码:

.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

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><html><head/><body><p>特点:支持随机访问,基于索引,中间插入或移除项速度快速</p></body></html></string>
24 </property>
25 </widget>
26 </item>
27 <item>
28 <widget class="QLabel" name="label_2">
29 <property name="text">
30 <string><html><head/><body><p>注意:访问QList时,value(int i)查不到此值时会返回一个默认值0,at(int i)则会引起崩溃。</p></body></html></string>
31 </property>
32 </widget>
33 </item>
34 <item>
35 <widget class="QLabel" name="label_3">
36 <property name="text">
37 <string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
38 <html><head><meta name="qrichtext" content="1" /><style type="text/css">
39 p, li { white-space: pre-wrap; }
40 </style></head><body style=" font-family:'SimSun'; font-size:9pt; font-weight:400; font-style:normal;">
41 <p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">源文
>
42 </property>
43 </widget>
44 </item>
45 <item>
46 <widget class="QLabel" name="label_4">
47 <property name="text">
48 <string><html><head/><body><p>
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

View Code

 

 

搜索

复制

举报

相关推荐

0 条评论