1.新增widgets模块
在Qt4中,Qt提供的全部图形界面相关类都包含在Qt Gui模块中,但QT5将一些图形界面类移到了QT widgets模块中。所以在Pro文件中,需要增加一句话:
greaterThan(QT_MAJOR_VERSION, 4):QT += widgets
意思是如果Qt版本大于Qt4,则需要增加widgets模块。
2.信号与槽的语法
Qt4中关联信号与槽一般这样写:
connect(sender, SINGAL(valueChanged(QString, QString)),
receiver, SLOT(showValue(QString)));
但这样写,没有编译器检查,有时编译器通过但应该调用的槽函数没有执行。这是编译器不能给出错误信息,只能在运行时看是否有警告。
Qt5中关联信号与槽是这样写:
connect(sender, &Sender::valueChanged, receiver, &Receiver::showValue);
这种写法支持编译器检查,能够在编译时就发现错误;并支持类型的隐式转换。
3.对C++11的支持
Qt5支持C++11,但有些编译器默认不开启。所以需要在Pro文件中增加一行:
CONFIG += c++11

本文介绍从Qt4到Qt5的迁移关键点,包括模块变化、信号与槽的新语法及C++11支持。Qt5将部分图形界面类移至widgets模块,改进信号与槽连接方式以增强编译器检查,并全面支持C++11特性。
650

被折叠的 条评论
为什么被折叠?



