LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 750|回复: 5

qt编程高手请进(非常着急)

[复制链接]
发表于 2003-9-5 10:38:56 | 显示全部楼层 |阅读模式
下面有一段代码,哪位高手能够写一个可以对此进行编译的Makefile文件,最好能够测试通过,我自己写的不能用.
/* chinese.h */

#include <qapplication.h>
#include <qwidget.h>
#include <qlabel.h>
#include <qlineedit.h>

class Chinese: public QWidget
{
        Q_OBJECT
        public:
                Chinese();
        private:
                QLabel *label;
                QLineEdit *input;
        private slots:
                void display();

};

//chinese.cpp
/* chinese.cpp */

#include "chinese.moc"
#include <iostream.h>

Chinese::Chinese()
{
        resize(200,100);

        label=new QLabel( "Input Line:", this);
        label->setGeometry(10,10,90,30);

        input=new QLineEdit(this);
        input->setGeometry(10, 40, 180, 30);
        input->setFocus();
        connect(input, SIGNAL(returnPressed()), this, SLOT(display()));

}
void Chinese::display()
{
        QCString string;
        string=input->text();
        cout<<string<<endl;
}

//main.cpp
/* main.cpp */

#include <qapplication.h>
#include "chinese.h"

main (int argc, char **argv)
{
        QApplication a(argc, argv);
        Chinese w;
        a.setMainWidget (&w);
        w.show();
        return a.exec();
}

如果是程序的问题也请各位高手能够指出,谢谢,
发表于 2003-9-5 12:18:28 | 显示全部楼层

just do it like this.

1. Fisrt create a directory for all your sourcecode files.
$ mkdir ~/mine
$ cp *.cpp *.h ~/mine
2. Invoke the qmake command with parameter:-project
$ cd ~/mine
$ qmake -project
$ ls
XXXXXX Makefile  mine.pro XXXX
3. Just do make
发表于 2003-9-5 13:43:38 | 显示全部楼层
chinese.cpp的第一行应该是
#include "chinese.h"
不是…….moc
.pro文件:
SOURCES += main.cpp chinese.cpp
HEADERS += chinese.h
CONFIG += qt thread
编译通过,不过因为有#include <iostream.h>,所以有一些警告
 楼主| 发表于 2003-9-5 22:20:01 | 显示全部楼层
我按照版主所说的试了,但是运行的时候显示有错误,主要是
returnPress()这部分,原来程序要实现的功能就是输入字符,然后回车,可以在终端上显示出输入的东西,还应该修改什末地方呀?

还有,我想问一下,如果我想写这段程序的Makefile应该怎末写那
我想通过写 Makefile,然后make 这段程序,主要是我写了一个,是不对的,所以非常希望知道应该如何来写,那位高热能够给一个完整的makefile文件
发表于 2003-9-6 01:16:04 | 显示全部楼层
不知道你说的是什么错误,我编译了以后可以在终端上显示输入的东西。
象qt这种程序用qmake不错呀,自己写Makefile太麻烦,程序有增删,改起来也麻烦。
下面是我大概写了一个:

  1. CXX = g++
  2. CPPFLAGS = -I$(QTDIR)/include -L$(QTDIR)/lib -L/usr/X11R6/lib
  3. LDLIBS = -lqt-mt -lXext -lX11
  4. MOC = $(QTDIR)/bin/moc

  5. main: main.cpp chinese.cpp moc_chinese.cpp
  6.         $(CXX) $(CPPFLAGS) $^ -o $@ $(LDLIBS)

  7. moc_chinese.cpp: chinese.h
  8.         $(MOC) chinese.h -o moc_chinese.cpp
复制代码
 楼主| 发表于 2003-9-8 09:33:52 | 显示全部楼层
非常感谢版主,用您的方法已经通过了
万分感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表