Qt学习之路(1)------Qt常用类用法说明

Qt常用类

向控制台输出文本

第一个例子,我们采用STL的方式:

console.cpp

#include <iostream>

int main()
{
  std::cout << "console application\n";
}

第二个例子我们用QT4编程库

console2.cpp

#include <QTextStream>

int main()
{
   QTextStream out(stdout);
   out << "console application\n";
}

Output

console application

QFile

写一行字符串到文件中

file.cpp

#include <QTextStream>
#include <QFile>

int main()
{

   QFile data("myfile");

   if (data.open(QFile::WriteOnly)) {
     QTextStream out(&data);
     out << "You make me want to be a better man." << endl;
   }
}

Output

$ cat myfile
You make me want to be a better man.

下面的例子我们输出一段文本到控制台

szerelem

S a régi szeret?mér­
mit nem cselekednék,
tengerb?l a vizet
kanállal lemerném.

S a tenger fenekér?l
apró gyöngyöt szednék,
s a régi szeret?mnek
gyöngykoszorút kötnék.

szerelem.cpp

#include <QTextStream>
#include <QFile>

int main()
{
  QFile data("szerelem");

  QString line;

  if (data.open(QFile::ReadOnly)) {
    QTextStream in(&data);
    QTextStream out(stdout);

    out.setCodec("UTF-8");
    in.setCodec("UTF-8");

    do {
      line = in.readLine();
      out << line << endl;
    } while (!line.isNull());
  }
}

Output

 S a régi szeret?mér­
mit nem cselekednék,
tengerb?l a vizet
kanállal lemerném.

S a tenger fenekér?l
apró gyöngyöt szednék,
s a régi szeret?mnek
gyöngykoszorút kötnék.

QList

Qt容器类之一

mlist.cpp

#include <QTextStream>
#include <QList>

int main()
{
  QTextStream out(stdout);

  QList<QString> list;

  list << "Balzac" << "Tolstoy" << "Guldbrassen"
       << "London" << "Galsworthy" << "Sienkiewicz";

  qSort(list);

  for (int i = 0; i < list.size(); ++i) {
    out << list.at(i) << endl;
  }

}

Output

Balzac
Galsworthy
Guldbrassen
London
Sienkiewicz
Tolstoy

QDir

管理文件目录

home.cpp

#include <QTextStream>
#include <QDir>

int main()
{
  QTextStream out(stdout);
  QString home = QDir::homePath();
  out << home << endl;
}

Output

/home/vronskij

输出应用程序所在路径中扩展名是.c的全部文件名字

filters.cpp

#include <QTextStream>
#include <QDir>

int main()
{
  QTextStream out(stdout);
  QDir dir;

  QStringList filters;
  filters << "*.c" << "*.c~";
  dir.setNameFilters(filters);

  QFileInfoList list = dir.entryInfoList();

  for (int i = 0; i < list.size(); ++i) {
    QFileInfo fileInfo = list.at(i);
    out << QString("%1").arg(fileInfo.fileName());
    out << endl;
  }
}

Output

$ ls -F
anim*  anim.c  anim.c~  filters*
$ ./filters
anim.c
anim.c~

QTime

输出当前时间

mtime.cpp

#include <QTextStream>
#include <QTime>

int main()
{
   QTextStream out(stdout);

   QTime qtime = QTime::currentTime();
   QString stime = qtime.toString(Qt::LocalDate);

   out << stime << endl;
}

Output

$ ./time
10:30:33 PM

QString

字符串连接

concat.cpp

#include <QTextStream>

int main()
{
   QString a = "Disziplin ";
   QString b = "ist ";
   QString c = "Macht.\n";

   QTextStream out(stdout);
   out << a + b + c;
}

Output

$ ./concat
Disziplin ist Macht.

字符串追加

append.cpp

#include <QTextStream>

int main()
{

   QString string = "Whether I shall ";

   string.append("turn out to be the hero of my own life, \n");
   string.append("or whether that station will be held by anybody else, \n");
   string.append("these pages must show.\n");

   QTextStream out(stdout);
   out << string;
}

Output

$ ./append
Whether I shall turn out to be the hero of my own life,
or whether that station will be held by anybody else,
these pages must show.

参数替换

arg.cpp

#include <QTextStream>

int main()
{
   QString string = "What if I gave you %1 red roses?";
   int num = 21;

   QTextStream out(stdout);
   out << string.arg(num) << endl;
}

Output

$ ./str3
What if I gave you 21 red roses?

输出字符串长度

size.cpp

#include <QTextStream>

int main()
{
 QString string = "The history of my life.";

 QTextStream out(stdout);
 out << "The string has " + QString::number(string.size())
    + " characters." << endl;
}

Output

 ./size
The string has 23 characters.

字符串大小写转换

uplow.cpp

#include <QTextStream>

int main()
{
  QString string = "The history of my life.";

  QTextStream out(stdout);
  out << string.toLower() << endl;
  out << string.toUpper() << endl;
}

Output

$ ./uplow
the history of my life.
THE HISTORY OF MY LIFE.
时间: 2024-08-26 14:32:03

Qt学习之路(1)------Qt常用类用法说明的相关文章

Qt 学习之路 :Qt Quick Controls

自 QML 第一次发布已经过去一年多的时间,但在企业应用领域,QML 一直没有能够占据一定地位.很大一部分原因是,QML 缺少一些在企业应用中亟需的组件,比如按钮.菜单等.虽然移动领域,这些组件已经变得可有可无,但在桌面系统中依然不可或缺.为了解决这一问题,Qt 5.1 发布了 Qt Quick 的一个全新模块:Qt Quick Controls.顾名思义,这个模块提供了大量类似 Qt Widgets 模块那样可重用的组件.本章我们将介绍 Qt Quick Controls,你会发现这个模块与

Qt 学习之路 :Qt 绘制系统简介

Qt 的绘图系统允许使用相同的 API 在屏幕和其它打印设备上进行绘制.整个绘图系统基于QPainter,QPainterDevice和QPaintEngine三个类. QPainter用来执行绘制的操作:QPaintDevice是一个二维空间的抽象,这个二维空间允许QPainter在其上面进行绘制,也就是QPainter工作的空间:QPaintEngine提供了画笔(QPainter)在不同的设备上进行绘制的统一的接口.QPaintEngine类应用于QPainter和QPaintDevice

Qt 学习之路 :Qt 线程相关类

希望上一章有关事件循环的内容还没有把你绕晕.本章将重新回到有关线程的相关内容上面来.在前面的章节我们了解了有关QThread类的简单使用.不过,Qt 提供的有关线程的类可不那么简单,否则的话我们也没必要再三强调使用线程一定要万分小心,一不留神就会陷入陷阱. 事实上,Qt 对线程的支持可以追溯到2000年9月22日发布的 Qt 2.2.在这个版本中,Qt 引入了QThread.不过,当时对线程的支持并不是默认开启的.Qt 4.0 开始,线程成为所有平台的默认开启选项(这意味着如果不需要线程,你可以

Qt 学习之路:Qt 简介

Qt 是一个著名的 C++ 应用程序框架.你并不能说它只是一个 GUI 库,因为 Qt 十分庞大,并不仅仅是 GUI 组件.使用 Qt,在一定程度上你获得的是一个“一站式”的解决方案:不再需要研究 STL,不再需要 C++ 的<string>,不再需要到处去找解析 XML.连接数据库.访问网络的各种第三方库,因为 Qt 自己内置了这些技术. Qt 是一个跨平台的框架.跨平台 GUI 通常有三种实现策略: API 映射:API 映射是说,界面库使用同一套 API,将其映射到不同的底层平台上面.大

QT学习之路--创建一个对话框

Q_OBJECT:这是一个宏,凡是定义信号槽的类都必须声明这个宏. 函数tr()全名是QObject::tr(),被他处理过的字符串可以使用工具提取出来翻译成其他语言,也就是做国际化使用. 对于QT学习之路:Qt学习之路(7):创建一个对话框(上)这个程序.编译出现 invalid use of incomplete type ‘class QPushButton’ findButton->setEnabled(!text.isEmpty()); ^ In file included from

Qt学习之路

  Qt学习之路_14(简易音乐播放器) Qt学习之路_13(简易俄罗斯方块) Qt学习之路_12(简易数据管理系统) Qt学习之路_11(简易多文档编辑器) Qt学习之路_10(Qt中statusBar,MessageBox和Timer的简单处理) Qt学习之路_9(Qt中Item Widget初步探索) Qt学习之路_8(Qt中与文件目录相关操作) Qt学习之路_7(线性布局和网格布局初步探索) Qt学习之路_6(Qt局域网聊天软件) Qt学习之路_5(Qt TCP的初步使用) Qt学习之路

Qt 学习之路 2 --- 读书笔记

一.文章来由 来自豆子老师非常好的一本Qt教程,但是只有网络版,所以用这个做笔记了,不动笔墨不读书嘛~~ 二.读书笔记 1.Qt 学习之路 2(2):Qt 简介 1.1 关于 Qt 的一站式解决 Qt 是一个著名的 C++ 应用程序框架.但并不只是一个 GUI 库,因为 Qt 十分庞大,并不仅仅是 GUI 组件.使用 Qt,在一定程度上你获得的是一个"一站式"的解决方案:不再需要研究 STL,不再需要 C++ 的,不再需要到处去找解析 XML.连接数据库.访问网络的各种第三方库,因为

QT学习之路(1):彩票绝对不中模拟器

//============================================//绝对不中,彩票开奖模拟器#include "mainwindow.h"#include "ui_mainwindow.h"#include <QHash>#include <QDebug>MainWindow::MainWindow(QWidget *parent) :    QMainWindow(parent),    ui(new Ui::M

qt学习(一)qt三个文件函数的框架

学到点什么, 而不是复制着什么, 每天敲着别人给的代码,苦涩得改完bug, 就这样一天天的过去, 实质上并没有学到什么, 别人的思想只是拿来借鉴, 你的思想是好是坏都是你的, 不用急着抛弃自己. 从qt看看人家的思路. Qt编程思路: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~` 以下:xxx.h ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~