当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 使用Linux纯属为了想了解UNIX下DB2运行和使用情况,而一直喜欢用的FreeBSD上好像不支持DB2数据库,反正我没有看到这方面资料。
 

 

    摘要:数学大师丘成桐痛击中国学术腐败 杨猛 北京科技报2005年08月10日   以目前的本科教育模式,国内不可能培养出一流人才 中国大学生的基础水 平,尤其是修养和学风在下降 哈佛毕业生的论文水平比国内有些院士的文章都 好 如果不重视学风建设,中国科技至少后退20年   基础教育不扎实,不可能培养出一流人才   “如果不重视基础教育,以目前的本科教育模式,国内不可能培养出一流人 才。”8月6日,数学大......
 ·教你如何学习grub[转]    »显示摘要«
    摘要:转载自:http://blog.chinaunix.net/article.php?articleid=34406&blogid=7635前天恢复我的rh8,一年多了,没时间管她。心血来潮想好好学习一下。结果,终于让我用sir上介结的法子把我的mbr给弄挂了。搜集了几年的好东东就在几条命令后牺牲了。痛定思痛,是该好好学习 的时候了。---by shell转载自:http://www.lin......


QT 入门
上一页   ...32. // no need to delete child widgets, qt does it all for us

33. } 【程序编程相关:Oracle9i在Linux9.0上的安

【推荐阅读:Linux下cvs的安装配置

【扩展信息:Linux挂载Windows分区

1: 我们上面的定义文件

2: pushbutton所需要的 .h 文件

3-6: 我们根本用不到, qt designer 自己产生的

7-13: qt designer 产生的注解

14-15: form1 的结构

17-18: 如果form1:form1中没有 pass 一个名子过来.那麽就命名为 form1

19: resize

20: 把显示出来的那个 dialog 的名子定为 form1, 也就是 window 中左上角的字

21: 做出一个新的button,名子为 pushbutton1

22: 这里设定了 pushbutton 在这个 dialog 中的位置. qrect(130, 160, 161, 71) 这里是说在一

个dialog中,以左边最上面来算,位置是(0,0), 所以说,这里的130(横向)与 160 (纵向)就是说我

们从 (0,0)开始,往左边跑130,往下跑 160.这样我们就算出了pushbutton这个按钮画在那里了.後面的161,

71则是定义这个pushbutton到底要画多大,设定了长与高

23: 通过呼叫settext指令,我们可以在这个 button上面给入我们需要的文字.这里是 exit

24: qt designer 产生的注解

25: 上面就是处理当接收到 clicked 的信号(singal)以後,我们所作的事情(setfocus on pushbutton1)

connect 这里是告诉程式连接一个信号,pushbutton1, signal(clicked()),是说信号是由 pushbutton1 发出,

发出的信号为 mouse clicked,pushbutton1, slot(setfocus())表示信号发出以後,目标(object)为 pushbutton,

event 是 setfocus() 动作

26: 主程式结束

27-29: qt designer 的注解

30-33: 清除 form1

由於我们要常常用到 qt designer, 也就是说,需要常常用到 uic 这苹程式. 为了省去每次都要

打一堆东西的麻烦.我们来写一各小 script 来处理 .ui 档案.

不难看出, uic 在处理/生成 .h .cpp 档案的时侯,用到了两个指令∶

uic -o form1.h form1.ui

uic -i form1.h -o form1.cpp form1.ui

所以我们的 script 就写成∶

###############################################################

#!/bin/sh #

# myuic program convert .ui to .cpp .h by calling uic #

#

input_ui=$@ #

#这里读取外面传回来的文件名 #

#

#

if [ ! -f "$input_ui" ] #

then #

echo "uic file $input_ui not found" #

echo #

echo "userage myuic input_file.ui" #

echo #

exit 1 #

fi #

#上面的语句检查我们所输入的.ui文件是否存在 #

#如果找不到指定的.ui文件,则显示一个简短的 #

#使用说明 #

#

input_h=`echo $@ | cut -d . -f1`.h #

#这里我们利用 cut 来处理输入的 .ui 文件. #

#得到一个 .h 的文件名 #

#

input_cpp=`echo $@ | cut -d . -f1`.cpp #

#同样的道理,利用 cut 产生一个 .cpp 的文件名 #

#

uic -o $input_h $input_ui #

#这里就是利用 .ui 产生 .h 的文件 #

#

uic -i $input_h -o $input_cpp $input_ui #

#利用 .h 与 .ui 产生 .cpp 文件. #

#

###############################################################

我门把这个文件存为 myuic. 并切 chmod +x 变成可执行档案.

然後 cp 到 /usr/bin 上面. 如果您在电脑中没有 root 的权限.

可以在自己的 $home 目录中做一个 bin 的 directory 出来.

然後去编辑您的 .bash_profile (这里假设您用的是 bash)

如果您的 .bash_profile 中本身已经有了 path 这段文字,那麽

您只要在原本的 path 後面加上 :$home/bin就可以了.如果没有

那麽就在您的 .bash_profile 中写入∶

path=$path:$home/bin

export path

这样您以後就可以直接执行 myuic 这个文件了.现在试试看用 myuic 来处理

刚刚的那个 form1.ui 这个文件吧. 先把旧的 .h .cpp 都删除掉∶

rm -f *.cpp *.h

然後用 myuic 来生成新的 .cpp .h 文件∶

myuic form1.ui

这时候用 ls 就会看到 form1.cpp form1.h form1.ui 这三个文件了

这时侯我们只需要写一个小的main.cpp就可以编译form1.cpp了.

main.cpp非常的简单

#include "form1.h"

#include

int main(int argc, char **argv)

{

kapplication app(argc, argv, "form1"); //kde 是建立在qt的基础上得所以kapplication

//所以kapp.h实际上包含了qapplication.h

form1 *form1=new form1();

form1->show();

app.setmainwidget(form1);

return(app.exec());

}

基本上来说,很简单.然後当然就是编译啦.我建议写出来的东西都用 kdevelop 来解决.首先 kdevelop

介面非常的友善.又能省下写 makefile 的麻烦.打开 kdevelop 以後,选择 项目->新建, kde2-normal,

然後 选择 next,在这一页中.注意不要在任何选项中打"x",因为我们用不到.反而会增加麻烦.最後

一直 next,然後 create , exit. 这时侯我们就已经有一个新的项目可以用了.在 menu 中选择:

项目->添加现存文件.然後把 qt_program 中的 form1.cpp form1.h 与 main.cpp 加入. 这时候只要按

一下 f9 , kdevelop 就会自动帮您把程式 compile 出来.并且执行. 程式执行後,我们不能用 click 那个

exit button 退出程式.因为我们并没有给他退出的信号.现在让我们来把程式码作些改动∶

###########################################################

#form1.h

#ifndef form1_h

#define form1_h

#include

class qpushbutton;

class form1 : public qdialog

{

q_object

public:

form1(qwidget *parent=0, const char *name=0);

qpushbutton* pushbutton1;

};

#endif // form1_h

#################################################################

#form1.cpp

#include "form1.h"

#include

#include

form1::form1(qwidget* parent, const char* name): qdialog(parent, name)

{

setcaption(tr("form21"));

pushbutton1=new qpushbutton(this,"pushbutton1");

pushbutton1->setgeometry(qrect(130,160,161,71));

pushbutton1-vsettext(tr("exit"));

connect(pushbutton1, signal(clicked()), kapp, slot(quit()));

}

form1::~form1(){}

####################################################################

main.cpp 保持不变.经过一番简化.程式码马上简单很多了.

这里我们除了把一些由 qt design 做出的不必要的 code 挑除以外.对 form1.cpp

做了两个小改动.

1.增加了 #include 这个 head file.

2.我们把∶

connect(pushbutton1, signal(clicked()), pushbutton1, slot(setfocus()));

改变为

connect(pushbutton1, signal(clicked()), kapp, slot(quit()));

同样的信号传送,但是目标对象有所改变.现在目标将作用在 kapp 上面也就是我们

的主程式(main application),而 slot 则是呼叫 quit(),现在 kdevelop 中更改

程式码.然後按下 f9 .等待程式运行.这时侯我们的程式,只要在那个 exit 的 button

上面用 mouse click 一下. 这个程式就完全关闭了.

现在我们在这个 pushbutton 中再增加一些功能.我们来看看 qt designer 中的 tooltip


...   下一页
 ·如何看透一个人    »显示摘要«
    摘要:看一个男人的品味,要看他的袜子。    看一个女人是否养尊处优,要看她的手。    看一个人的气血,要看他的头发。    看一个人的心术,要看他的眼神。    看一个人的身价,要看他的对手。    看一个人的底牌.要看他身边的好友。    看一个人的性格,要看他的字写得怎样。    看一个人是否快乐,不要看笑容,要看清晨梦醒时的一刹那表情。    看一个人的胸襟,要看他如何面对失败及被人出卖。  ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE