首页| 论坛| 消息

标题:大家帮我看一下这段代码
作者:efengyu
日期:2006-04-22 13:20
内容:

#include
#include
#include

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刷新,这样在移动滚动条的时候,原来的矩形就会不见了,这个问题该怎么解决,
是不是要在移动滚动条的时候要自己让它刷新,该怎么解决?


#1 [shiroki 04-24 10:57]
好像应该重载另外一个函数来绘制,而不是paintEvent
可能是drawContent之类的? 查查吧
#2 [guyansrg 04-24 21:08]
你填的代码好像漏一点东西
缺少了头文件 “#inlcude ”
#3 [guyansrg 04-24 21:20]
你写的paintEvent函数,只是在窗口大小被改变的时候才重新画那个矩形

回复 发表
主题 版块