• 5488阅读
  • 14回复

qt编程初学者的疑惑 [复制链接]

上一主题 下一主题
离线wangyy2006
 
只看楼主 倒序阅读 楼主  发表于: 2009-06-17
刚接触qtE编程不久,按照《C++ GUI Qt3编程》这本书进行学习的,但在学习中碰到了问题,快折腾两天了,还没有解决,不知道原因,请高手指点,谢谢!
下面是我做的一系列步骤:
按照《C++ GUI Qt3编程》里第二章,快速对话框设计将界面和源码都写上去了,但在对ok按钮以及行编辑器处理中遇到问题
1、先双击窗体,激发Qt Designer的代码编辑器
2、在编辑器中输入课本中的代码
#include <qvalidator.h>

void GoToCellDialog::init()
{
    QRegExp regExp("[A-Za-z][1-9][0-9]{0,2}");
    lineEdit->setValidator(new QRegExpValidator(regExp, this));
}

void GoToCellDialog::enableOkButton()
{
    okButton->setEnabled(lineEdit->hasAcceptableInput());
}
3、保存之后就是gotocelldialog.ui.h
4、progne -t app.t -o gotocelldialog.pro,生成.pro文件,并且修改成:TEMPLATE    = app
CONFIG        = qt warn_on release
HEADERS        = gotocelldialog.h \
          gotocelldialog.ui.h
SOURCES        = main.cpp \
          tcell.cpp \
          
INTERFACES    =
即把最后INTERFACES    = gotocelldialog.ui改掉
5、在gotocelldialog.cpp中,加入gotocelldialog.ui.h这个头文件
6、tmake -o Makefile gotocelldialog.pro生成Makefile文件,再修改其中代码,加入qt所需要的头文件路径和库路径
7、make,生成可执行文件,在qvfb模拟器上运行
问题:1:编译通不过,提示说lineEdit->setValidator(new QRegExpValidator(regExp, this));
,hasAcceptableInput(),这里有问题
2:我将其全部屏蔽,改成:void GoToCellDialog::init()
{
  QMessageBox::information(NULL,"TEXT","IN TO INIT");
  }

void GoToCellDialog::enableOkButton()
{
   QMessageBox::information(NULL,"OKBUTTON","IN TO OK");
}

3、再次编译通过,在qvfb上运行,但就是没有弹出消息框。
那就是说明这个.ui.h文件里的这两个函数都没有进入
自己整了很久,想不同,请高手指教!
离线wangyy2006
只看该作者 1楼 发表于: 2009-06-17
等了这么久,还是没人啊,高手出来啊!
离线浪漫天使
只看该作者 2楼 发表于: 2009-06-18
你为什么要改生成的pro呢,给个理由。
离线wangyy2006
只看该作者 3楼 发表于: 2009-06-18
生成pro,是为了后面生成Makefile
离线duduqq

只看该作者 4楼 发表于: 2009-06-18
再学QT,最好不要用Qt Designer,界面自己做好了,不然很难理解Qt Designer生成代码的意思
现在都出QT4了,怎么不用QT4呢
离线wangyy2006
只看该作者 5楼 发表于: 2009-06-18
开发板移植的是Qt3,就直接开始学习qt3了,请问楼上有用Qt Designer做过吗?
离线浪漫天使
只看该作者 6楼 发表于: 2009-06-18
生成pro,是为了后面生成Makefile
是啊 ,既然生成了为什么还要改呢?
离线wangyy2006
只看该作者 7楼 发表于: 2009-06-18
我是参考一份pdf说要改掉最后那句,书上我没有写的,但确实是,用qt designer编写hello world那些都是去掉的哦,但真的原因我也不明白,请指教
离线浪漫天使
只看该作者 8楼 发表于: 2009-06-18
那个pdf 说的 贴一下
同时 试试不改看看
离线wangyy2006
只看该作者 9楼 发表于: 2009-06-18
pdf的内容:编辑工程文件hello.pro 文件
到目前为止,我们为Hello,World 例子编写了一个头文件和两个源文件,这3 个文件应
该被包括在工程文件中, 因此我们需要编辑hello.pro 文件, 加入这
hello.h,hello.cpp,main.cpp 这三个文件名。具体定义如下
/****************************************************************************
** 以下是 hello.pro 文件的内容
****************************************************************************/
TEMPLATE = app
CONFIG = qt warn_on release
HEADERS = hello.h
SOURCES = hello.cpp \
main.cpp
INTERFACES =

不改就出现很多的错误
离线浪漫天使
只看该作者 10楼 发表于: 2009-06-18
那是因为 Hello,World 例子 没有用到ui文件
你的工程却是有用designer生成的ui文件的
能比么??!
不改出现很多错误了 ,
那就讨论错误 贴出错误信息
而不是去改pro文件。
离线wangyy2006
只看该作者 11楼 发表于: 2009-06-18
hello world,我也用到ui这个文件了,但生成pro之后,将pro改一下,就可以了
离线wangyy2006
只看该作者 12楼 发表于: 2009-06-18
现在是因为多了个ui.h这个文件,就出现这样的问题,感觉ui.h这个文件里的函数就没有调用
离线浪漫天使
只看该作者 13楼 发表于: 2009-06-18
算了把,把你出问题的东西打包上传 大家看看 ok
离线yangyunzhao

只看该作者 14楼 发表于: 2009-06-18
QT3太麻烦了,用QT4吧,反正就是换几个库,不麻烦的。
快速回复
限100 字节
 
上一个 下一个