刚接触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文件里的这两个函数都没有进入
自己整了很久,想不同,请高手指教!