• 6619阅读
  • 12回复

给子窗口传递图像参数~~~重新描述下问题:::【已解决】+我第一个前面标志变成一团火的帖子,呵呵。。。 [复制链接]

上一主题 下一主题
离线yangfanxing
 
只看楼主 正序阅读 楼主  发表于: 2009-12-25
— 本帖被 XChinux 执行加亮操作(2009-12-26) —
在类1中构造一类2的对象(窗口2);
在类1对象(窗口1)中,传递了OriginalImage给窗口2的_oImage后,窗口2的构造函数中的_oImage为空;
    if(_oImage.isNull())
        qDebug() << "c:Null Image";
    else
        qDebug() << "c:have Image";
返回c: Null Image
但是在窗口2的resizeEvent中却不为空。。。
    if(_oImage.isNull())
        qDebug() << "r:Null Image";
    else
        qDebug() << "r:have Image";
返回r:have Image
因为我在窗口2的构造函数中要用到_oImage的信息,所以。。。怎么办呢?
[ 此帖被yangfanxing在2009-12-25 19:49重新编辑 ]
PHPWind好恶心。。。不想看这种界面。。。
离线yangfanxing
只看该作者 12楼 发表于: 2009-12-25
引用第10楼dbzhang800于2009-12-25 16:32发表的  :
这个,和普通函数没多大区别
[code]//B.cpp
QimgZoomIn::QimgZoomIn(QWidget* parent, const QImage & image)
:    QWidget(parent), _oImage(image)
.......


呵呵,还是那句话,基础太差,但又赶鸭子上架;

老大,我先拜~~~

等调好了再拜~~~


————————————————
回来拜dbzhang800 DD了~~~顺便结贴~
[ 此帖被yangfanxing在2009-12-25 19:38重新编辑 ]
PHPWind好恶心。。。不想看这种界面。。。
离线benbenmajia

只看该作者 11楼 发表于: 2009-12-25
顶楼上,没代码没真相啊
安然.....
离线dbzhang800

只看该作者 10楼 发表于: 2009-12-25
这个,和普通函数没多大区别

  1. //B.cpp
  2. QimgZoomIn::QimgZoomIn(QWidget* parent, const QImage & image)
  3. :    QWidget(parent), _oImage(image)
  4. {
  5.     setupUi(this);
  6. if(_oImage.isNull())
  7.                 qDebug() << "c:Null Image";
  8.         else
  9.                 qDebug() << "c:have Image";
  10. ...
  11. }
离线yangfanxing
只看该作者 9楼 发表于: 2009-12-25
引用第8楼dbzhang800于2009-12-25 16:23发表的  :
  1. 因为我在窗口2的构造函数中要用到_oImage的信息,所以。。。怎么办呢?

问题简单了,把它作为构造函数的参数传进来


DD好~
有点儿笨啊,这个实在领会不透。。。像一般的函数传参能理解过来,这个。。。能稍微具体下么?
PHPWind好恶心。。。不想看这种界面。。。
离线dbzhang800

只看该作者 8楼 发表于: 2009-12-25
  1. 因为我在窗口2的构造函数中要用到_oImage的信息,所以。。。怎么办呢?


问题简单了,把它作为构造函数的参数传进来
离线yangfanxing
只看该作者 7楼 发表于: 2009-12-25
引用第6楼dbzhang800于2009-12-25 13:11发表的  :
  1. 传递了OriginalImage给窗口2的_oImage后,窗口2的构造函数中的_oImage为空;

你的构造函数怎么写的?


构造函数中倒没有对这个参数操作:

  1. //A.h
  2. class QimgWindow :    public QWidget,
  3.             public Ui_imgWindow
  4. {
  5. public:
  6.     QimgWindow(QWidget* = 0);
  7.        QimgZoomIn *Img_Zoomin;
  8. protected:
  9.     QimgZoomIn *Img_Zoomin;
  10. ...
  11. }
  12. //A.cpp
  13. QimgWindow::QimgWindow(QWidget* parent)
  14. :    QWidget(parent)
  15. {
  16.     Img_Zoomin = new QimgZoomIn (this);Img_Zoomin->_oImage = my4;
  17. ...
  18. }
  19. //B.h
  20. class QimgZoomIn :    public QWidget,
  21.                     public Ui_imgZoomIn
  22. {
  23.     Q_OBJECT
  24. public:
  25.     QimgZoomIn(QWidget* = 0);
  26. public:
  27.     QImage    _oImage;
  28. ...
  29. }
  30. //B.cpp
  31. QimgZoomIn::QimgZoomIn(QWidget* parent)
  32. :    QWidget(parent)
  33. {
  34.     setupUi(this);
  35. if(_oImage.isNull())
  36.                 qDebug() << "c:Null Image";
  37.         else
  38.                 qDebug() << "c:have Image";
  39. ...
  40. }
  41. void QimgZoomIn::resizeEvent(QResizeEvent *event)
  42. {
  43.     if(_oImage.isNull())
  44.         qDebug() << "r:Null Image";
  45.     else
  46.         qDebug() << "r:have Image";
  47. ...
  48. }
PHPWind好恶心。。。不想看这种界面。。。
离线yangfanxing
只看该作者 6楼 发表于: 2009-12-25
引用第7楼benbenmajia于2009-12-25 15:16发表的  :
oimage如果是数组的话,你声明之后是有一个随意的值的吧?会不会是这样?

_oImage是QImage类型
确实是为NULL。
    if(_oImage.isNull())
        qDebug() << "C:Null Image";
    else
        qDebug() << "C:have Image";
我写了判断语句的。
PHPWind好恶心。。。不想看这种界面。。。
离线benbenmajia

只看该作者 5楼 发表于: 2009-12-25
oimage如果是数组的话,你声明之后是有一个随意的值的吧?会不会是这样?
安然.....
离线dbzhang800

只看该作者 4楼 发表于: 2009-12-25
  1. 传递了OriginalImage给窗口2的_oImage后,窗口2的构造函数中的_oImage为空;


你的构造函数怎么写的?
离线xinqingfly

只看该作者 3楼 发表于: 2009-12-25
应该在son->SetImage(originalImage); //父类后再调用你处理_oImage的代码,如果实在要在构造函数中调用最好给个默认值或者在new Qson的时候就传入,不过不建议这样
菜鸟也是鸟
离线benbenmajia

只看该作者 2楼 发表于: 2009-12-25
帖子太长,没仔细看,你说你这个参数不是全局的吗?
安然.....
离线yb824
只看该作者 1楼 发表于: 2009-12-25
子对象再写一个SetImage();
快速回复
限100 字节
 
上一个 下一个