在那神奇的一天,发生了一件神奇的事情,那就是有一个大美女——我突然发现自己不知不觉,越来越喜欢在Linux系统下做开发了~于是开始认认真真学习Linux系统下开发~~~虽然说在IT的道路上我还是一只小小小小菜鸟,我最近的收获对高手来说犹如天边的一朵小浮云,但是对我来说,如同朝阳,带给我无穷的前进的动力。高手要多多悄悄指点我哦~
除了熟悉VI编辑器以外,主要有三方面收获,Qt安装,Qt界面开发,以及C++开发算法,罗列如下,留个笔记,将来可以看看:
NO.1 Qt安装
在Linux系统下办法老多了,可以用apt-get获取安装包,也可以在系统自带的软件管理中心处搜索Qt并下载,好像这些是可以自动安装的。我呢,选择了从网上下载安装包、解压、编译。具体步骤如下:
1、
载下qt-x11-opensource-src-4.3.2.tar.gz
2、
解压。tar zxvf qt-x11-opensource-src-4.3.2.tar.gz,将解压以后的文件夹移动到/usr/local下,并更名为qt
3、
进入/usr/local/qt,运行 ./configure(中间征询意见的时候就yes);然后运行gmake,有的人是make,具体看上一步执行结果的提示;运行gmake install(默认安装在/usr/local/Trolltech/Qt-4.3.2下)
4、
更改配置文件:在用户目录下,比如我的是/usr/venus,编辑配置文件,vi .bash_profile
添加如下内容:
QTDIR=/usr/local/Trolltech/Qt-4.3.2
PATH=$QTDIR/bin:$PATH
MANPATH=$QTDIR/doc/man:$MANPATH
LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QTDIR PATH MANPATH LD_LIBRARY_PATH
保存后重启或者注销用户即可生效。
注意是.bash_profile,放.bashrc里传说会意外多添加路径,什么原因不晓得,我的是添加了两次……而自己在别的地方写bash文件(使用source xx.sh生效)的话好像只在当前terminal中有效。
5、
好吧,写个最简单的Qt程序来测试?大伙都迫不及待的想知道自己的成果有没有白费~
不避俗,就用hello qt好咯:
$vi hello.cpp
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QLabel label(“hello qt!”);
label.show();
return app.exec();
}
$qmake –project
(生成.pro文件)
$qmak xx.pro
(根据pro文件生成Makefile文件,也可以只写qmake)
$make
(执行Makefile)
$./hello
(执行可执行文件)
OK
咯~唯一纠结的就是之前用的Qt3,头文件包含啥的全用小写,有些控件初始化的方式与Qt4不同,导致我折腾了好久才搞定…
NO.2 Qt界面开发
要是界面简单呢,还可以自己手写,但是通常界面会复杂一点,这时候要用Qt的designer工具设计界面了呢(就是各种拖控件咯~)。更重要的是用designer设计界面会更便于管理吧(也不晓得用XML保存界面是谁发明的,嗯,不错~)。步骤如下:
1)
$mkdir test
2)
$designer(或者
designer&,表示后台运行
)
3)
$vi testDialog.h
4)
$vi testDialog.cpp
5)
$vi main.cpp
6)
$qmake –project
7)
$qmake test.pro
8)
$make
9)
$./test
1)
创建工程文件夹
2)
运行designer,然后各种设计,保存在test文件夹,比如保存为head.ui;另外记住这个UI的object name,比如为
dlgName(记不住后面也可以查,比如,运行uic head.ui,控制台即可显示根据ui生成的头文件,从命名空间那里可以看到相应
UI的object name
)
3)
编辑类testDialog头文件,记得将ui加在私有变量(Ui::dlgName ui);另外要么namespace Ui{class
dlgName
;},要么直接包含头文件,头文件的名称为ui_head.h。
4)
编辑testDialog实现文件,用ui.setupUi(this)添加Ui。有一点呢,我没想通:如果ui在声明的时候为指针(Ui::testDialog *ui),那么在构造函数中那块应该要初始化,不然在构造函数里ui->setupUi(this)的时候就是空指针,这没错吧?在QtCreator以及Linux终端编译的时候都没问题,在运行的时候出现段错误,那么这也没问题。那我就是不明白为什么在VS中可以运行,而且多次运行都没问题。如果是随机生成的,这这这……也太智能了吧?而且跟踪的时候发现ui每次指向的地址都一样又是为什么呢?另外析构函数中只用delete new过的东西,否则会出现错误,好纠结。不过大侠有句话说的对,一般不会有声明过却不new的……
5)
哎呀呀,这后面的过程以及代码就跟前面的hello qt差不多咯~
NO.3 C++算法开发
这个主要需要注意的就是makefile编写咯,我有好几次都吃亏在那个预编译文件(一般为头文件名.h.gch),所以makefile中的clean把预编译文件也清除了。
另外,我发现python在这时候好有用哦~~o(∩_∩)o ~最笨的验证算法就是自己一步步笔算,可是懒得笔算怎么办咧?如果是在windows系统下可以有计算器,可以有MATLAB帮忙,Linux系统下呢?有法宝python啦~默认安装了的,直接vi compute.py,import math,各种繁琐计算公式一写,保存后运行python compute.py就可以看结果咯~跟用MATLAB一样,做梦都要笑醒!
对对对,还有一个收获,就是现在用VI更顺手了,知道并应用了更多的命令,也算没有辜负大侠的期望啊~
转载于:https://blog.51cto.com/smallclouds/966662