今天开始学习QT编程。其实我是比较讨厌界面编程的,感觉没有什么意思,项目需要就开始学习QT。打算从QT4学。虽然资料还不是很多。
#include <qapplication.h >
#include <qpushbutton.h >
int main( int argc, char **argv )
{
QApplication a( argc, argv );
QPushButton hello( "Hello world!", 0 );
hello.resize ( 100, 30 );
a.setMainWidget ( &hello );
hello.show ();
return a.exec ();
}
QT的HelloWord程序,网上流传比较广。
wangyao@fisherman:~/tmp/qt/3$ qmake -project
wangyao@fisherman:~/tmp/qt/3$ qmake
wangyao@fisherman:~/tmp/qt/3$ make
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -I. -o hello.o hello.cpp
hello.cpp: In function ‘int main(int, char**)’:
hello.cpp:12: error: ‘class QApplication’ has no member named ‘setMainWidget’
make: *** [hello.o] 错误 1
结果你编译出错,原因是因为QT4跟QT3有很多的变化,这可以参考QT4的手册。
在QT4里面没有setMainWidget这个方法,其实就不需要了。直接去掉就可以了。
int main( int argc, char **argv )
{
QApplication a( argc, argv );
QPushButton hello( "Hello world!", 0 );
hello.resize ( 100, 30 );
hello.show ();
return a.exec ();
}
这样就可以编译通过了。