控制台应用程序
通过命令行运行的不需要提供任何人机交互图形界面通常被称作系统服务。Qt不仅仅是用户界面工具,它也提供了许多其他的功能。
创建步骤:文件–>新建文件或项目–>Application–>Qt Console Application
注意:创建的路径中不能有中文出现,会报错。
字符串处理功能
#include <QtCore>
// text stream is text-codec aware
QTextStream cout(stdout, QIODevice::WriteOnly);
int main(int argc, char** argv){
Q_UNUSED(argc)
Q_UNUSED(argv)
QString s1("Paris");
QString s2("London");
QString s = s1 + " " + s2 + "!";
cout << s << endl;
}
容器类
#include <QtCore>
QTextStream cout(stdout, QIODevice::WriteOnly);
int main(int argc, char** argv){
Q_UNUSED(argc);
Q_UNUSED(argv);
QString s1("Hello");
QString s2("Qt");
QList<QString> list;
list << s1 << s2;
QListIterator<QString> iter(list);
//==QString s = list.join(" ") + "!";
while(iter.hasNext()) {
cout << iter.next();
if(iter.hasNext()) {
cout << " ";
}
}
cout << "!" << endl;
}
文件IO
#include <QtCore>
int main(int argc, char** argv){
Q_UNUSED(argc);
Q_UNUSED(argv);
QList<QStringList> data;
QFile file("E:\\Qt_Project\\untitled2\\sample.csv");
if(file.open(QIODevice::ReadOnly)) {
QTextStream stream(&file);
forever {
//==(;;)
QString line = stream.readLine();//Reads one line of text from the stream, and returns it as a QString.
if(line.isEmpty() || line.isNull()) {
break;
}
QStringList row;
foreach(const QString& cell, line.split(",")) {
row.append(cell.trimmed());
}
data.append(row);
}
}
QListIterator<QStringList> iter(data);
while(iter.hasNext()) {
qDebug() << iter.next();
}
}
窗口应用程序
基于控制台的应用程序非常方便,但有时候需要一些用户界面。但是基于用户界面的应用程序需要后端来写入/读取文件,使用网络进行通讯或者将数据保存在容器中。
创建步骤:文件–>新建文件或项目–>Application–>Qt Widgets Application–>基类填写QWidget
自定义窗口部件
/*----------------------main.cpp------------------*/
#include "widget.h"
#include "customwidget.h"
#include <QtWidgets>
#include <QScopedPointer>
int main(int argc,