• 12546阅读
  • 11回复

【提问】才学QT。这么简单的程序在错了?在kdevelop下编译出错~ [复制链接]

上一主题 下一主题
离线magicoy
 

只看楼主 倒序阅读 楼主  发表于: 2005-08-24
#include <qapplication.h>
#include <qwidget.h>
#include <qpushbutton.h>

int main(int argc, char **argv)
{
    QApplication a;
    QWidget mainwindows;
   
    mainwindows.setMinimumSize(200, 100);
    mainwindows.setMaximumSize(200, 100);

    QPushButton hello("Hello magicoy!", &mainwindows);
    hello.setGeometry(20, 20, 160, 60);

    a.setMainWedget(&mainwindows);
    mainwindows.show();
    return a.exec();
}


/* 错误信息
cd '/usr/cqt/qapp' && QTDIR="/usr/lib/qt-3.3" gmake -k
正在编译 qapp.cpp (g++)
qapp.cpp:7: error: no matching function for call to `QApplication::QApplication()'
/usr/lib/qt-3.3/include/qapplication.h:435: note: candidates are: QApplication::QApplication(const QApplication&)
/usr/lib/qt-3.3/include/qapplication.h:81: note: QApplication::QApplication(Display*, int, char**, long unsigned int, long unsigned int)
/usr/lib/qt-3.3/include/qapplication.h:79: note: QApplication::QApplication(Display*, long unsigned int, long unsigned int)
/usr/lib/qt-3.3/include/qapplication.h:77: note: QApplication::QApplication(int&, char**, QApplication::Type)
/usr/lib/qt-3.3/include/qapplication.h:75: note: QApplication::QApplication(int&, char**, bool)
/usr/lib/qt-3.3/include/qapplication.h:74: note: QApplication::QApplication(int&, char**)
qapp.cpp:16: error: 'class QApplication' has no member named 'setMainWedget'
qapp.cpp:6: warning: unused parameter 'argc'
qapp.cpp:6: warning: unused parameter 'argv'
*** 退出状态:2 ***
[ 此贴被XChinux在2005-08-25 09:46重新编辑 ]
永 远 记 得 : 做 人 厚 道 一 点 好 。

离线XChinux

只看该作者 1楼 发表于: 2005-08-24
人家说了,QApplication的那几个构造函数里没有和你使用的想匹配的。所以应该变为:
QApplication a(argc, argv);

还数:QApplication类没有setMainWedget这个成员,所以
应该叫:setMainWidget,
但,如果你使用qt4的话,这个函数是也没有,也是不需要的。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线magicoy

只看该作者 2楼 发表于: 2005-08-24
我是QT几我也不知道。
反正我用的ML自带的QT
永 远 记 得 : 做 人 厚 道 一 点 好 。

离线magicoy

只看该作者 3楼 发表于: 2005-08-24
#include <qapplication.h>
#include <qwidget.h>
#include <qpushbutton.h>

int main(int argc, char **argv)
{
    QApplication a(argc,argv);
    QWidget mainwindows;
   
    mainwindows.setMinimumSize(200, 100);
    mainwindows.setMaximumSize(200, 100);

    QPushButton hello("Hello magicoy!", &mainwindows);
    hello.setGeometry(20, 20, 160, 60);

    a.setMainWidget(&mainwindows);
    mainwindows.show();
    return a.exec();
}

--------------------------------------
cd '/usr/cqt/qapp' && QTDIR="/usr/lib/qt-3.3" gmake -k
正在联接 ../bin/qapp (g++)
/usr/lib/qt-3.3/include/qglist.h:151: multiple definition of `main'
qapp.o(.text+0x0):/usr/lib/qt-3.3/include/qglist.h:151: first defined here
/usr/cqt/qapp/src/moc_qapp.cpp:106: undefined reference to `Qapp::aboutQt()'
moc_qapp.o(.text+0x261):/usr/cqt/qapp/src/moc_qapp.cpp:99: undefined reference to `Qapp::newDoc()'
moc_qapp.o(.text+0x270):/usr/cqt/qapp/src/moc_qapp.cpp:100: undefined reference to `Qapp::choose()'
/usr/lib/qt-3.3/include/private/qucom_p.h:449: undefined reference to `Qapp::load(QString const&)'
/usr/cqt/qapp/src/moc_qapp.cpp:102: undefined reference to `Qapp::save()'
o(.text+0x2a6):/usr/cqt/qapp/src/moc_qapp.cpp:103: undefined reference to `Qapp::saveAs()'
moc_qapp.o(.text+0x2b6):/usr/cqt/qapp/src/moc_qapp.cpp:104: undefined reference to `Qapp::print()'
moc_qapp.o(.text+0x2c6):/usr/cqt/qapp/src/moc_qapp.cpp:105: undefined reference to `Qapp::about()'
*** 退出状态:2 ***
永 远 记 得 : 做 人 厚 道 一 点 好 。

离线XChinux

只看该作者 4楼 发表于: 2005-08-25
KDevelop自动生成Qt程序有两种方式, 一种是使用Autoconf, automake工具,另一种是使用qmake。看你是采用的哪种。同时,自动生成的工程一般来说都已经为你生成了主函数文件。你再好好检查一下工程里的文件。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线giscn
只看该作者 5楼 发表于: 2005-08-25
main重复定义了,
你的gmake在干什么?将乱七八糟的qglist.h等都联到里面去了
将pro文件帖出来看看,
[ 此贴被giscn在2005-08-25 10:39重新编辑 ]
http://nzt.spaces.live.com
离线XChinux

只看该作者 6楼 发表于: 2005-08-25
对,写Qt程序用qmake管理工程比较的方便些。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线magicoy

只看该作者 7楼 发表于: 2005-08-25
#include <qapplication.h>
#include <qpushbutton.h>


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

    QPushButton hello( "Hello world!", 0 );
    hello.resize( 100, 30 );

    a.setMainWidget( &hello );
    hello.show();
    return a.exec();
}
------------------------------------------------------
cd '/usr/cqt/qapp' && QTDIR="/usr/lib/qt-3.3" gmake -k
正在编译 qapp.cpp (g++)
qapp.cpp:7: error: expected primary-expression before ']' token
*** 退出状态:2 ***
永 远 记 得 : 做 人 厚 道 一 点 好 。

离线XChinux

只看该作者 8楼 发表于: 2005-08-25
下面是引用magicoy于2005-08-25 16:36发表的:
#include <qapplication.h>
#include <qpushbutton.h>
int main( int argc, char *argv[] )
.......


应该是
QApplication a(argc, argv);
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线magicoy

只看该作者 9楼 发表于: 2005-08-25
#include <qapplication.h>
#include <qpushbutton.h>


int main( int argc, char **argv )
{
    QApplication a( argc, argv );

    QPushButton hello( "Hello world!", 0 );
    hello.resize( 100, 30 );

    a.setMainWidget( &hello );
    hello.show();
    return a.exec();
}

--------------------------------------------------------------
cd '/usr/cqt/qapp' && QTDIR="/usr/lib/qt-3.3" gmake -k
正在联接 ../bin/qapp (g++)
/usr/lib/qt-3.3/include/qglist.h:151: multiple definition of `main'
qapp.o(.text+0x0):/usr/lib/qt-3.3/include/qglist.h:151: first defined here
/usr/cqt/qapp/src/moc_qapp.cpp:106: undefined reference to `Qapp::aboutQt()'
moc_qapp.o(.text+0x261):/usr/cqt/qapp/src/moc_qapp.cpp:99: undefined reference to `Qapp::newDoc()'
moc_qapp.o(.text+0x270):/usr/cqt/qapp/src/moc_qapp.cpp:100: undefined reference to `Qapp::choose()'
/usr/lib/qt-3.3/include/private/qucom_p.h:449: undefined reference to `Qapp::load(QString const&)'
/usr/cqt/qapp/src/moc_qapp.cpp:102: undefined reference to `Qapp::save()'
moc_qapp.o(.text+0x2a6):/usr/cqt/qapp/src/moc_qapp.cpp:103: undefined reference to `Qapp::saveAs()'
moc_qapp.o(.text+0x2b6):/usr/cqt/qapp/src/moc_qapp.cpp:104: undefined reference to `Qapp::print()'
moc_qapp.o(.text+0x2c6):/usr/cqt/qapp/src/moc_qapp.cpp:105: undefined reference to `Qapp::about()'
*** 退出状态:2 ***
永 远 记 得 : 做 人 厚 道 一 点 好 。

离线XChinux

只看该作者 10楼 发表于: 2005-08-25
不会吧,上面的程序根本用不着moc。肯定是你工程的问题。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线zeckey

只看该作者 11楼 发表于: 2006-02-11
#include <qapplication.h>
#include <qwidget.h>
#include <qpushbutton.h>

int main(int argc, char **argv)
{
  QApplication a(argc, argv);
  QWidget mainwindows;
 
  mainwindows.setMinimumSize(200, 100);
  mainwindows.setMaximumSize(200, 100);

  QPushButton hello("Hello magicoy!", &mainwindows);
  hello.setGeometry(20, 20, 160, 60);

  a.setMainWidget(&mainwindows);
  mainwindows.show();
  return a.exec();
}
快速回复
限100 字节
 
上一个 下一个