QTE 重载了paintEvent()后报错 line 1: syntax error: "(" unexpected

yiminwei 2010-05-21 10:06:47
求教:
QT:4.5.3
QTE:4.5.3
编译环境:arm-none-linux-gnueabi-g++
我在PC机把程序交叉编译后,下载到ARM中去后,程序运行正常。但是一旦代码中重载了paintEvent()后,就会报错:line 1: syntax error: "(" unexpected 。求教这是为什么呢?难道是库文件不全,还是版本有问题?
烦请指教!

我做了个空的Dialog,ARM能显示,但是我一旦画图形,就报错了。
代码如下:
//main.cpp
#include <QApplication>
#include "draw.h"

int main(int argc, char **argv)
{
QApplication app(argc, argv);
Draw *dialog = new Draw;
dialog->show();

app.connect( &app, SIGNAL( lastWindowClosed() ), &app, SLOT( quit() ) );

app.exec();
}
//Draw.h
#ifndef DRAW_H
#define DRAW_H

#include <QTimer>
#include <QDialog>
#include "ui_drawpic.h"

class Draw : public QDialog, public Ui_Dialog
{
Q_OBJECT
public:
Draw( QDialog *parent=0, Qt::WindowFlags f=0 );

protected:
void paintEvent(QPaintEvent *event);

};

#endif

//draw.cpp
#include "draw.h"

#include <QDialog>
#include <QPainter>

using namespace std;

Draw::Draw( QDialog *parent, Qt::WindowFlags f ) : QDialog( parent, f )
{
setupUi(this);
}
void Draw::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing, true);
painter.setPen(QPen(Qt::black,1,Qt::DashDotLine, Qt::RoundCap));
// painter.setBrush(QBrush(Qt::green),Qt::SolidPattern);
painter.drawEllipse(0,0,200,240);/**/

painter.setPen(QPen(Qt::blue,1,Qt::DashDotLine, Qt::RoundCap));
painter.drawRect(0,0,this->width(),this->height());

painter.end();

}
...全文
238 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
synu_soft 2012-06-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

后来验证确实是库的问题
[/Quote]
请问你这个问题怎么解决的啊?我这几天在移植qt4.8.2,当在开发板运行qmake的时候也出现这个错误,多谢指点了。
yiminwei 2010-09-08
  • 打赏
  • 举报
回复
谢谢楼上的各位了!
yiminwei 2010-09-08
  • 打赏
  • 举报
回复
后来验证确实是库的问题
chenwenluan 2010-05-21
  • 打赏
  • 举报
回复
楼主如果用了构造函数 QPainter painter(this),后面的painter.end()就应该删掉。因为调析构时会自动调用end()的。
gemfield 2010-05-21
  • 打赏
  • 举报
回复
编译提示看,顶多是语法问题,不会是库的原因
yiminwei 2010-05-21
  • 打赏
  • 举报
回复
我刚把那句话删了 可是错误还是一样的
yiminwei 2010-05-21
  • 打赏
  • 举报
回复
我刚把那句话删了 可是错误还是一样的

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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