• 6388阅读
  • 3回复

大家帮我看一下这段代码 [复制链接]

上一主题 下一主题
离线efengyu
 

只看楼主 倒序阅读 楼主  发表于: 2006-04-22
#include <qapplication.h>
#include <qwidget.h>

#include <qpainter.h>



class mywidget :public QScrollView
  {
    public:
        mywidget();
    private:
        QWidget *main;
                    protected:
                                virtual void paintEvent  
                                            (QPaintEvent *)                    
   
  };
 
mywidget::mywidget()
{
  setGeometry(0,0,470,410);
  main=new QWidget(this);
  main->resize(800,600);
  addChild(main);
}
void mywidget::paintEvent(QPaintEvent*)
{
  QPainter p(main);
  p.drawRect(10,10,100,100);
}

int main(int argc,char **argv)
{
  QApplication app(argc,argv);
  mywidget w;
  app.setMainWidget(&w);
  w.show();
  return app.exec();
}


就是在QScrollView中显示一个比它要大QWidget,但是每次只有QScrollView要刷新是才能将
QWidget刷新,这样在移动滚动条的时候,原来的矩形就会不见了,这个问题该怎么解决,
是不是要在移动滚动条的时候要自己让它刷新,该怎么解决?
[ 此贴被XChinux在2006-04-22 13:30重新编辑 ]
离线shiroki

只看该作者 1楼 发表于: 2006-04-24
好像应该重载另外一个函数来绘制,而不是paintEvent
可能是drawContent之类的? 查查吧
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线guyansrg

只看该作者 2楼 发表于: 2006-04-24
你填的代码好像漏一点东西
缺少了头文件 “#inlcude <qscrollview.h>”
离线guyansrg

只看该作者 3楼 发表于: 2006-04-24
你写的paintEvent函数,只是在窗口大小被改变的时候才重新画那个矩形
快速回复
限100 字节
 
上一个 下一个