有关QScrollview的问题请教!!!

interbanker 2003-10-16 11:48:31
我定义了了一个QScrollview,然后addchild了一个QWidget,当我不设置边界的时候,我用QPainter在Qwidget上画字是正常的,但是使用 setMargins()设置后,使用QPainter.drawText(就不能画上去)
...全文
167 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fierygnu 2003-10-23
  • 打赏
  • 举报
回复
不是是否可以实现的问题,而是事件驱动应用的编程模式问题。比如你重载了drawContents,其参数QPainter会为你设置好裁减区,并且在有多个暴露事件时合并无效区域,这都是你的代码里没有的。
另外,你要设置的是scrollbar的范围,那不是margin(margin是边界空白),应该用 resizeContents()设置整个内容的大小,scrollview会自动调整scrollbar的。
interbanker 2003-10-23
  • 打赏
  • 举报
回复
应该是重载QScrollView的drawContents,在其中显示内容。在从socket接收数据的例程里给scrollview发送expose事件。

--------------------------------------------------------
在QWidget上画字我上面的代码可以实现了,我想是否用drawContents显示关系不大吧!!!
现在的关键是我的QScrollview的滑竿不知道怎么设置移动范围,也不是很明白移动滑竿的时候会产生什么信号??
fierygnu 2003-10-22
  • 打赏
  • 举报
回复
应该是重载QScrollView的drawContents,在其中显示内容。在从socket接收数据的例程里给scrollview发送expose事件。
interbanker 2003-10-22
  • 打赏
  • 举报
回复
因为代码很多,我只把相关的代码列一下
创建vt100_dsp类
vt100_dsp::vt100_dsp(QWidget* parent,const char* name)
: QScrollView(parent,name,0)
然后QWgt是从QWidget继承过来的,vpwgt将被用来画字
vpwgt = new Qwgt(this,"twgt");
vpwgt->setFixedSize(830,530);
vpwgt->setBackgroundColor(white);
this->addChild(vpwgt);
this->horizontalScrollBar();
setVScrollBarMode(QScrollView::AlwaysOn);
setHScrollBarMode(QScrollView::AlwaysOff);
然后画字部分
QPainter tpainter;
tpainter.begin(vpwgt);
tpainter.drawText(m_cmdy*(CharHigh+5),m_cmdx*(CharWidth+1),&(m_vt100Struct.m_vt100[m_cmdy][m_cmdx].c),1);
tpainter.end();

整个程序实际上是从socket读东西,然后画在vpwgt上,我想通过QScrollview的滑杆上下移动来刷新画字的内容。现在问题是,我设置在vpwgt上显示2000行文字,想设置滑竿移动范围!!!另外viewportMousePressEvent(QMouseEvent*)根本进不来!!
kangcau 2003-10-21
  • 打赏
  • 举报
回复
对于QWidget来说,要在EventPaint()中进行绘制!
fierygnu 2003-10-21
  • 打赏
  • 举报
回复
我觉得是你的问题描述的不清楚。你是重载了drawContents在里边绘制吗?是否用QPainter::clipRegion看过?
如果方便,贴上代码。
interbanker 2003-10-21
  • 打赏
  • 举报
回复
送分都没有人要,什么世道啊!!!
interbanker 2003-10-18
  • 打赏
  • 举报
回复
看来没有人应答了,哪位随便跟个帖子,我好结贴!!!

23,115

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧