闲话不多说,直接记录。


首先说一点关于信号槽的误解,上次那个明明发射信号却无法进入槽函数的原因已经查明,因为自定义的类体里面没有Q_OBJECT所以无法纳入Qt大家庭中。我发现这个宏还有解决换行符跨平台等问题,加了这个宏的文件在使用git的时候不会提示CRLF的问题,没加的就会出现CRLF的问题。


QDate

QDate是Qt提供的日期控件可以获取当前日期,如果是QDateTime的话可以精确到秒。获取了日期之后可以设置日期显示格式。由toString(QString format)函数实现设置格式。

这个toString函数类似printf函数,都是把format参数里面的特定字符替换为时间,比如y代表year,M代表month,由于日期时间格式里面有两个“m”,所以大写M表示month,小写m表示minute,d代表day,h代表hour,s代表second。举个例子:

    QDateTime::currentDateTime().toString("yyyy-MM-dd-h-m");

那么返回就是2015-08-22-16-33


QTextCodec

为了解决中文乱码的问题,可以通过设置本地编码来解决,当然也可以通过QString::formLocal8bit()解决(如果变量不多的话)。代码如下:

    QTextCodec *codec = QTextCodec::codecForName("UTF-8");
    QTextCodec::setCodecForLocale(codec);

不过需要注意的一点就是改变本地编码之后换行符可能跟随变化。还是用'\n'吧,暂时没考虑跨平台的问题。


QFileDialog

QFileDialog是一个可以获取文件路径的类,使用它会自动弹出一个文件选择对话框。这个类同时也可以获取文件夹路径。

  • 获取文件夹路径

QString QFileDialog::getOpenFileName();
  • 当然获取同目录下多个文件的话就是

QStringList QFileDialog::getOpenFileNames();
  • 获取已存在文件夹路径

QString QFileDialog::getExistingDirectory();


liyu34
43 声望1 粉丝

软件工程在读研究生一枚