专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > QT开发

关于Qt中的写屏种 QDirectPainter

发布时间:2010-05-30 20:55:27 文章来源:www.iduyao.cn 采编人员:星星草
关于Qt中的写屏类 QDirectPainter
小弟想用Qt直接写屏,快速画波形,又可以管理窗口,QDirectPainter类可以实现。但我把类中的标志改成QDirectPainter::NonReserved的话,就总写不了屏,用QDirectPainter::Reserved是可以在指定区域静态写屏的。但我的目的是写屏的区域可以被其它窗体盖上去的,不要因为这写屏而把在这区域的窗体都擦掉了,用了raise(),和lower()也是没有用的。
    QFrame *frame =new QFrame;
    frame->setGeometry(0,0,640,480);
    
   // QDirectPainter pain(frame,QDirectPainter::NonReserved);
    QDirectPainter pain(frame,QDirectPainter::NonReserved);// Reserved ReservedSynchronous
  // pain.lower();
    pain.startPainting();
    pain.setRegion(QRegion(0,0,100,300));

    uchar *fb = pain.frameBuffer();

    qint32 i=0;
     for(i=0;i<256000;i++)
    {
        *(fb+i) = 65535;
       // printf("fdsfsfn");
    }

 //  pain.flush(pain.allocatedRegion());
    pain.endPainting(pain.allocatedRegion());

请问,这类应该怎么用呢?
------最佳解决方案--------------------
这不矛盾么? 你又直接写屏, 又想Qt的组件跑你前面
------其他解决方案--------------------
画一个图片,作桌面背景
------其他解决方案--------------------
没人帮我看看啊,我其实主要想解决的问题就是,我写屏的那个区域可以被其它窗体盖上,现在写屏后,那区域就是最顶层了,什么都被盖住。
------其他解决方案--------------------
引用:
这不矛盾么? 你又直接写屏, 又想Qt的组件跑你前面


我现在是不清楚在linux Qt下能否实现,听说在windCE 6.0 下是可以的,就又可以快速刷屏,又可以窗口管理。
------其他解决方案--------------------
发现应该是没办法用QDirectPainter时又同时顾及其它窗口。想在画线的同时判断某点是不是有其它窗体,有的话就不画,这样应该行,可如何判断某一个点有没有窗体呢?
------其他解决方案--------------------
应该没办法了这个类,只能自己写窗口管理的代码。画线的时候判断是否有窗体显示,有就不画出来
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: