本文共 2200 字,大约阅读时间需要 7 分钟。
习惯了windows下的基于GUI的应用程序开发,突然想想linux下该如何开发一个图形应用程序呢?查了查资料,发现QT是个好东西,于是迫不及待的在ubuntu8.04下试了试。 首先呢, 先找到一个教程, 照着教程试试: http://www.qiliang.net/qt/tutorial1-01.html 不得不说, 这个教程很不错, 讲解比较细致,也容易懂。 接着,开始自己敲代码: $ mkdir HelloWorld $ cd HelloWorld $ vi HelloWorld.cpp 代码内容如下: // HelloWorld.cpp #include <qapplication.h> #include <qpushbutton.h> int main(int argc, char** argv) { QApplication a(argc, argv); QPushButton hello("Hello World!", 0); hello.resize(300, 130); a.setMainWidget(&hello); hello.show(); return a.exec(); } 代码什么意思我也不说了, 如果你熟悉windows下的图形界面开发, 你会发现这些代码非常容易懂, 而且上面的教程里面对每句代码有很好的解释。 代码敲完了, 开始该编译了吧: $ qmake -project 令人沮丧的是, 居然不认识qmake,不过有提示: The program 'qmake' can be found in the following packages: * libqt4-dev * qt3-dev-tools 看看上面的提示, 似乎libqt4-dev这个版本比较新呀, 于是作为首先的安装对象: $ sudo apt-get install libqt4-dev 哇, 速度还真不错, 5分钟就搞定了 重新编译: $ qmake -project $ qmake $ make g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -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 HelloWorld.o HelloWorld.cpp HelloWorld.cpp: In function ‘int main(int, char**)’: HelloWorld.cpp:9: error: ‘class QApplication’ has no member named ‘setMainWidget’ make: *** [HelloWorld.o] Error 1 郁闷呀, 前面2步没问题, 又出问题了, 不过, 不要慌, 看看错误提示先: HelloWorld.cpp:9: error: ‘class QApplication’ has no member named ‘setMainWidget’ 这句似乎比较能说明问题了, 没有这个成员函数, 怎么办? google吧, g.cn回车, 查一查,终于找到问题所在了: http://www.gidforums.com/t-13690.html 呵呵, 原来是版本的问题, setMainWidget是Qt3的,而在Qt4中,这个函数已经过时了, 于是,For an immediate fix, you can define QT3_SUPPORT: // // Define QT3_SUPPORT before including any qt headers // #define QT3_SUPPORT #include <qapplication.h> #include <qpushbutton.h> 好,加上 #define QT3_SUPPORT 然后重新编译, 哈哈, 成功编译, 发现HelloWorld目录下面多了一些文件, 其中有一个绿色的 HelloWorld, 我想这个应该就是可执行文件了吧, 先不管, 执行一把: $ ./HelloWorld 哈哈, 爽, 终于出来了: 兴奋一下, 于是写成上文,关于QT编程进一步的知识, 完全可以照着上面的教程去实际操作一下。 下面这篇文章: http://blog.chinaunix.net/u2/60529/showart_1111263.html 也是一篇入门文章, 看看演练一下也不错。 从上面的例子来看, 这种写法似乎很熟悉, MFC? 呵呵, 好像是的哟, 如果你对MFC很熟悉, 然后网上找一些教程以及查看一下QT的相关文档如: http://doc.trolltech.com/4.1/classes.html 我想写一些一般的GUI应用程序应该是不成问题的。转载地址:http://fgbai.baihongyu.com/