• 4625阅读
  • 3回复

一个图片显示的小程序求教 [复制链接]

上一主题 下一主题
 
只看楼主 倒序阅读 楼主  发表于: 2006-09-10
想写一个简单的在qt下显示图片的程序
可是在编译时老出现这个错误:error: multiple types in one declaration 一个声明指定了多个类型
比如在生成image.o的时候 /usr/lib/qt-3.3/include/qpen.h:88: 错误:一个声明指定了多个类型
在编译main.cpp的时候也有这种情况
/usr/lib/qt-3.3/include/qdesktopwidget.h:43: error: multiple types in one declaration
不知道是自己程序哪个地方出毛病了,反正把image.cpp置空就没这个错误了
多谢

程序如下:
imag.h
  1. #ifndef IMAGE_H
  2. #define IMAGE_H
  3. #include <qwidget.h>
  4. #include <qimage.h>
  5. class MyImage : public QWidget
  6. {
  7. public:
  8.     MyImage( QWidget *parent=0, const char *name=0, int wFlags=0 );
  9.     ~MyImage();
  10.     bool loadImage( const QString& );
  11. protected:
  12.     void paintEvent( QPaintEvent * );
  13.    
  14. private:
  15.     QString filename;
  16.     QImage image;
  17. }
  18. #endif

image.cpp
  1. #include "image.h"
  2. #include <qpainter.h>
  3. #include <qapplication.h>
  4. #include <qmessagebox.h>
  5. MyImage::MyImage( QWidget *parent, const char *name, int wFlags ):QWidget( parent, name, wFlags )
  6. {
  7.    bool ok;
  8.    filename = "/opt/program/qt/showimg/save";
  9.    ok = loadImage( filename );
  10.    printf( "ok = %d \n", ok );
  11. }
  12. MyImage::~MyImage()
  13. {
  14. }
  15. bool MyImage::loadImage( const QString& filename )
  16. {
  17.    
  18.    bool ok;
  19.    ok = image.load( filename, 0 );
  20.    update();
  21.    return ok;
  22. }
  23. void MyImage::paintEvent( QPaintEvent *e )
  24. {
  25.    QPainter painter(this);
  26.    painter.setClipRect(e->rect());
  27.    painter.drawImage( image.width(), image.height(), image );
  28. }


main.cpp
  1. #include "image.h"
  2. #include <qapplication.h>
  3. #include <qimage.h>
  4. int main( int argc, char **argv )
  5. {
  6.    QApplication a( argc, argv );
  7.    MyImage myimage;
  8.    a.setMainWidget( &myimage );
  9.   myimage.setCaption("image Example");
  10.   myimage.show();
  11.   return a.exec();
  12. }    
离线style
只看该作者 1楼 发表于: 2006-09-11
大哥。你是我的偶像.

class X
{
    //....
}; 这里的';'可不能掉啊,加上就OK了
只看该作者 2楼 发表于: 2006-09-11
多谢楼上。
第一次自己编程,使用QT和C++
错误有点不好意思,呵呵
已解决
再次感谢
只看该作者 3楼 发表于: 2006-09-11
顺便说一下是painter.drawImage( 0, 0, image );才能显示图片,否则刚好不显示,我昨天看错了传递的参数定义
还有些小问题,我自己再好好看看
快速回复
限100 字节
 
上一个 下一个