• 7464阅读
  • 6回复

Qt main.cpp编译问题 [复制链接]

上一主题 下一主题
离线xingyuzk
 
只看楼主 正序阅读 楼主  发表于: 2008-07-29
— 本帖被 XChinux 执行加亮操作(2008-07-29) —
我使用Qt4生成了.ui文件。根据书上的提示编写了main.cpp函数。当使用qmake -project    qmake      make 编译时重视出错。不知道main函数应该怎样编写。

我编写的main.cpp为:
#include<QApplication>
#include"ui_video.h"

int main(int argc, char *argv[])
{
QApplication app(argc,argv);
QWidget *form=new QWidget;
Ui::Ui_Form ui;
ui.setupUi(&form);

return app.exec();
}


出错提示为:

[root@zhang video]# qmake -project
[root@zhang video]# qmake
[root@zhang video]# make
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/QtEmbedded-4.4.0/mkspecs/qws/linux-x86-g++ -I. -I/usr/local/Trolltech/QtEmbedded-4.4.0/include/QtCore -I/usr/local/Trolltech/QtEmbedded-4.4.0/include/QtCore -I/usr/local/Trolltech/QtEmbedded-4.4.0/include/QtNetwork -I/usr/local/Trolltech/QtEmbedded-4.4.0/include/QtNetwork -I/usr/local/Trolltech/QtEmbedded-4.4.0/include/QtGui -I/usr/local/Trolltech/QtEmbedded-4.4.0/include/QtGui -I/usr/local/Trolltech/QtEmbedded-4.4.0/include -I. -I. -I. -o main.o main.cpp
main.cpp: In function `int main(int, char**)':
main.cpp:8: error: `Ui_Form' undeclared in namespace `Ui'
main.cpp:8: error: syntax error before `;' token
main.cpp:9: error: `ui' undeclared (first use this function)
main.cpp:9: error: (Each undeclared identifier is reported only once for each
  function it appears in.)
make: *** [main.o] Error 1

还有在头文件里下面这句的作用是什么?

namespace Ui {
    class Form: public Ui_Form {};
} // namespace Ui

谢谢!刚开始学Qt 还望指教!
傻人做傻事
离线yxr52051801
只看该作者 6楼 发表于: 2008-07-31
新建一个Mainwindow或者QWidget时,要给他初始化参数如
QWidget  *form = new QWidget(0,Qt::Widget);试试
离线xingyuzk
只看该作者 5楼 发表于: 2008-07-30
我重新用Main Window 编辑了.ui 文件
在main.cpp里使用
QMainWindow *form=new QMainWindow;
Ui::MainWindow ui;
ui.setupUi(form);

form->show();
就可以正常编译。
当我改为Widget时就不可以。
我看了它们使用的一个是QMainWindow 另一个使用的是QWidget
这都是在Qt设计ui时自动调用的。但为什么调用QWidget就不能正常编译?
傻人做傻事
离线溟阡
只看该作者 4楼 发表于: 2008-07-30
Ui::Ui_Form ui;
改成
Ui::Form ui;
试试
离线yxr52051801
只看该作者 3楼 发表于: 2008-07-30
你的form本来就是指针了 ,ui.setupUi(form);试试
初始化之后要显示 form->show();
离线xingyuzk
只看该作者 2楼 发表于: 2008-07-30
好像不对啊,还是出现那个错误。
编译错误
傻人做傻事
离线water_wf

只看该作者 1楼 发表于: 2008-07-29
.pro
CONFIG += uitools
快速回复
限100 字节
 
上一个 下一个