linux下QT4的使用

  最近碰到需要使用qt做界面开发的项目。记得上次使用QT都是两年前的事了,那时候QT3,当时用起来还是觉得很舒服的。但现在把QT4装上我才知道,原来QT都发生了很大的变化了。uic,qmake的使用都变化了。所以用了一下午时间来适应这个新环境。


首先,阅读以下几篇blog。基本上就已经有大体思路了。

http://blog.csdn.net/sgnaw/article/details/2595389

http://www.cnblogs.com/bigshow/archive/2008/10/23/1318267.html

http://blog.csdn.net/apple1985507/article/details/5387125

有了大体思路,但就依靠以上BLog仍然无法调通一个测试程序,经过一下午的努力,终于找到了解决方法。总结如下。


1,

qt4的QDialog头文件是由C++编写的,所以在申明的时候使用#include<QDialog>,而不是用#include<QDialog.h>,否则在编译时会出现 QDialog.h不存在;


2,重新使用原来的ui文件时(即直接打开已存在的ui文件),需要删除make生成的东西(run make clean)、删除原来的可执行文件、.pro文件、 Makefile文件、.h文件。


新添加信号槽时:需要进行如下操作,
1,由新的.ui文件生成.h文件(eg, form1.ui -> form1.h)
2,在MyDlg.h中申明头文件(#include<QMessageBox>以及自定义的槽 eg: public slots: void ShowInfo();
3,在MyDlg.h中的MyDlg构造函数中声明信号槽的连接,并实现这个信号。
eg:
QObject::connect(ui.pushButton_2, SIGNAL(clicked()), this, SLOT(ShowInfo()));

void MyDlg::ShowInfo()
{
QMessageBox::information(this, tr("Hello"), tr("Hello World"), tr("OK"));
}

4,重新运行qmake进行编译,最终运行;

现在,重新定义更复杂slot,你就可以实现更复杂的功能了。good luck.

原文地址:https://www.cnblogs.com/javawebsoa/p/3053792.html