qt编译提示expected class-name before '{' token

firerun 2008-03-19 09:40:49
就编了一个mainwindow,然后里边就只有menufile和两个action
make时总提示这么句话,偶也不知道该怎样着了
有牛人支支招么??
expected class-name before '{' token

...全文
4975 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿丹 2011-11-17
  • 打赏
  • 举报
回复
我也也遇到了这个问题:我最后解决了。。
我出现这个错误:的原因是因为 我用虚函数来写回调 然后因为之前尝试两个类文件之间调用成员函数 而相互的都把他们的头文件放在他们两个的.h中。。额 举个例子:
#include "A.h"\#include "B.h".他们内部分别有class A class B .两个头文件 都写在对方那里了。。
jie581 2011-08-16
  • 打赏
  • 举报
回复
头文件包含错误也会报这个错误
air3507 2010-11-05
  • 打赏
  • 举报
回复
我也出现了这个问题。好像不是大小写的原因啊...
  • 打赏
  • 举报
回复
我一时糊涂把两个析构函数放错了地方也出现这个问题了。
smilepander 2010-03-09
  • 打赏
  • 举报
回复 1
将Ui::后面的名称修改为.UI文件中红色标出的名称即可解决,。ui用编辑工具打开
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
希望能有所帮助
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 biosrs 的回复:]
我在编写QT的类时继承QThread类时编译也出了这样大问题,
后来把QT给make clean掉后用
./configure -tablet -thread
后再执行make,再引用此库就好了。
[/Quote]

这可能是因为你的libqt库不支持thread,也就是名字不是libqt-mt类型的。后者表示支持多线程(muti-thread)。要想让QThread的代码编译通过,就需要用你说的在configure 的时候,让qt支持thread功能。这样编译时才能通过。
yangfanxing__ 2009-08-20
  • 打赏
  • 举报
回复
嗯,根据提示的错误,终于找到了问题所在~~~
不过生成的*.exe文件不能运行……唉……
y_hai@126.com
yangfanxing__ 2009-08-20
  • 打赏
  • 举报
回复
解决问题的方法能否稍微详细点儿叙述~以飨后来人啊~~~
问题纠结中~
dolaluoo 2008-06-04
  • 打赏
  • 举报
回复
我在编写QT的类时继承QThread类时编译也出了这样大问题,
后来把QT给make clean掉后用
./configure -tablet -thread
后再执行make,再引用此库就好了。
cnchs 2008-04-23
  • 打赏
  • 举报
回复
大小写问题?能具体说说吗?我是新手,也碰到了这个问题。
ouyh12345 2008-03-19
  • 打赏
  • 举报
回复
class mainwindow:public QMainWindow,public Ui::mainwindow

第一个mainwindow能不能换个名字?
babyvox1999 2008-03-19
  • 打赏
  • 举报
回复
报错的地方?
firerun 2008-03-19
  • 打赏
  • 举报
回复
偶把代码贴上
mainwindow.h
/////////////////////////////////
#ifndef GAMEDIALOG_H
#define GAMEDIALOG_H

#include <QtGui>
#include <QMainWindow>
#include <QWidget>
#include "ui_mainwindow.h"

class mainwindow:public QMainWindow,public Ui::mainwindow
{
Q_OBJECT
public:
mainwindow(QWidget *parent=0);

private slots:
void sequence();
void clear();
};
#endif


mainwindow.cpp
///////////////////////////////////
#include <QtGui>
#include <QString>
#include "mainwindow.h"
#include "circle.h"
#include "game.h"

mainwindow::mainwindow(QWidget *parent):QDialog(parent)
{
setupUi(this);
connect(actionnew,SIGNAL(triggered()),this,SLOT(clear()));
connect(buttonj,SIGNAL(clicked()),this,SLOT(sequence()));
connect(actionexit,SIGNAL(triggered()),this,SLOT(QWidget::close()));
}


void mainwindow::sequence()
{
QString str;
game a;

lineeditj->setText(str.setNum(a.gamm((lineedit->text()).toInt(),(lineeditb->text()).toInt())));
}


void mainwindow::clear()
{
lineedit->setText("");
lineeditb->setText("");
lineeditj->setText("");
}


main.cpp
////////////////////////////////////////
#include <QApplication>
#include <QMainWindow>
#include "mainwindow.h"

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
mainwindow *mainwin = new mainwindow;
mainwin->show();
return app.exec();
}
firerun 2008-03-19
  • 打赏
  • 举报
回复
已解决,就是大小写的问题。后人鉴之。

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧