• 10479阅读
  • 10回复

【提问】一个简单的弹出式对话框,怎么会出现这样的错误讷?? [复制链接]

上一主题 下一主题
离线macping
 

只看楼主 正序阅读 楼主  发表于: 2006-03-03
[root@macxiaowei testmain]# make
g++ -c -pipe -Wall -W -O2 -march=i386 -mcpu=i686 -g -DGLX_GLXEXT_LEGACY -fno-use-cxa-atexit -fno-exceptions -DQT_NO_DEBUG -I/usr/lib/qt-3.1/mkspecs/default -I. -I/usr/lib/qt-3.1/include -I.ui/ -I.moc/ -o .obj/testform.o .ui/testform.cpp
g++ -o test .obj/main.o .obj/testform.o .obj/moc_testform.o -L/usr/lib/qt-3.1/lib -L/usr/X11R6/lib -lqt-mt -lXext -lX11 -lm
.obj/testform.o(.text+0x38): In function `testForm::okSlot()':
/root/testmain/testform.ui.h:13: undefined reference to `QWidgetFactory::create(QString const&, QObject*, QWidget*, char const*)'
collect2: ld returned 1 exit status
make: *** [test] Error 1
文字文字
离线marship
只看该作者 10楼 发表于: 2006-03-06
让你参照就对照文档,文档已经说的很清楚了,你的包含可能指的是把头文件包含进去了,我据说的是把动态链接库包含进去,两个是不一样的,例子不知道有人写这个没有,有空会写的,请先看文档。
离线macping

只看该作者 9楼 发表于: 2006-03-06
顺便问一下,大家开发时,大概步骤是怎么样的
,请高手
那个具有代表性的例子讲一下呀
。。。。。
让我们菜鸟学习学习
离线macping

只看该作者 8楼 发表于: 2006-03-06
我已经包含进去了
可是还是不行呀
离线marship
只看该作者 7楼 发表于: 2006-03-04
编译显然已经通过,很明显是链接库未正确链接引起的错误。
由于QWidgetFactory并没有自动包含在qt库中,所以使用时需要自己连上库文件,在你的pro工程文件里加入以下内容,根据你在linux还是window需要连接不同的库文件,详细请参考assitant中动态创建对话框一节和QWidgetFactory一节。
unix:LIBS += -lqui
win32:LIBS += $(QTDIR)/lib/qui.lib

INCLUDEPATH += $(QTDIR)/tools/designer/uilib
离线lcc_zjut

只看该作者 6楼 发表于: 2006-03-04
是不是这句话的问题:
app.setMainWidget( mainForm );
这句话好像在Qt4的版本里编译不能通过的
离线macping

只看该作者 5楼 发表于: 2006-03-03
说白了
,就是定义一个form(testform)
,包含一个按钮,点击ok按钮(利用okSlot槽和QWidgetFactory::creat)就会出现另一个form(dynamicform)

我已经把qwidgetfactory.h包含进testform中了
可是...................
班主帮帮我
离线macping

只看该作者 4楼 发表于: 2006-03-03
main.cpp

#include <qapplication.h>

  #include "testform.h"


  int main( int argc, char *argv[] )
  {
    QApplication app( argc, argv );

    testForm *mainForm = new testForm;
    app.setMainWidget( mainForm );
    mainForm->show();

    return app.exec();
  }
离线macping

只看该作者 3楼 发表于: 2006-03-03
testform.ui.h
/****************************************************************************
** ui.h extension file, included from the uic-generated form implementation.
**
** If you wish to add, delete or rename functions or slots use
** Qt Designer which will update this file, preserving your code. Create an
** init() function in place of a constructor, and a destroy() function in
** place of a destructor.
*****************************************************************************/


void testForm::okSlot()
{
    QDialog *dynamicFormm = (QDialog *)
        QWidgetFactory::create( "../test/dynamicform.ui" );
    if ( dynamicForm->exec() ) {
        // The user accepted, act accordingly

    }
    delete dynamicForm;
}
离线macping

只看该作者 2楼 发表于: 2006-03-03
我用的是qt designer
qt3.1
下面贴我编的.cpp 和.ui.h文件
离线XChinux

只看该作者 1楼 发表于: 2006-03-03
把源代码贴出来看看
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个