• 4916阅读
  • 5回复

我就想画条线,程序写出来,编译通过,但运行结果不对!(附程序) [复制链接]

上一主题 下一主题
离线yangfan135
 

只看楼主 倒序阅读 楼主  发表于: 2006-05-26
我就想画条线,程序写出来,编译通过,但运行结果不对!(附程序)
程序如下:
#include <stdio.h>
#include <stdlib.h>

#include <qapplication.h>
#include <qcanvas.h>
#include <qpen.h>
#include <qcolor.h>
#include <qwidget.h>

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

  QWidget m;

  QCanvas canvas( 800, 600 );
  canvas.setAdvancePeriod(30);

  a.setMainWidget(&m);

  QCanvasLine* i = new QCanvasLine(&canvas);
  i->setPoints( rand()%canvas.width(), rand()%canvas.height(),
            rand()%canvas.width(), rand()%canvas.height() );
  i->setPen( QPen(QColor(rand()%32*8, rand()%32*8, rand()%32*8), 6) );
  i->setZ(rand()%256);
  i->show();

  m.show();

  return a.exec();
}
我的QT版本是3.3,运行的结果是只出现一个大白框,里面却什么也没有!哪位高人请指点,谢谢!!!
离线myer

只看该作者 1楼 发表于: 2006-05-26
应该new canvasview,然后setcanvas();
同时,new的canvas item初始好像都是hided状态,应该show()一下。
http://user.qzone.qq.com/56430808
离线yangfan135

只看该作者 2楼 发表于: 2006-05-26
我是新手,不太明白你的意思!能详细些吗?或者具体程序应该如何改?
离线myer

只看该作者 3楼 发表于: 2006-05-26
QWidget m;
改为QCavasView m;m.setCanvas(&canvas);
再试试。
http://user.qzone.qq.com/56430808
离线yangfan135

只看该作者 4楼 发表于: 2006-05-26
这是我改后的程序:
#include <stdio.h>
#include <stdlib.h>

#include <qapplication.h>
#include <qcanvas.h>
#include <qpen.h>
#include <qcolor.h>
#include <qwidget.h>
#include <qscrollview.h>

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

//   QWidget m;

  QCanvas canvas( 800, 600 );
  canvas.setAdvancePeriod(30);

  QCavasView m;
  m.setCanvas(&canvas);
  a.setMainWidget(&m);

  QCanvasLine* i = new QCanvasLine(&canvas);
  i->setPoints( rand()%canvas.width(), rand()%canvas.height(),
            rand()%canvas.width(), rand()%canvas.height() );
  i->setPen( QPen(QColor(rand()%32*8, rand()%32*8, rand()%32*8), 6) );
  i->setZ(rand()%256);
  i->show();

  m.show();

  return a.exec();
}
错误信息如下:
test.cpp: In function `int main(int, char**)':
test.cpp:20: error: `QCavasView' was not declared in this scope
test.cpp:20: error: expected `;' before "m"
test.cpp:21: error: `m' was not declared in this scope
怎么回事那?
离线yangfan135

只看该作者 5楼 发表于: 2006-05-26
成功了
快速回复
限100 字节
 
上一个 下一个