当前位置:  技术问答>linux和unix

用QT做直尺,大家看看这程序,帮帮忙。

    来源: 互联网  发布时间:2016-03-16

    本文导语:  大家试试这个程序,帮帮忙 这段程序是按照做不规则窗口改动的,大家可以试试运行一下。 矩形区域不能填充到背景色,只有零星的一些点,哪位大侠可以指导一下。 #include  #include  #include  #include  #include  #include...

大家试试这个程序,帮帮忙
这段程序是按照做不规则窗口改动的,大家可以试试运行一下。
矩形区域不能填充到背景色,只有零星的一些点,哪位大侠可以指导一下。
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

class myclass:public QWidget
{
    public:
        myclass(QWidget *parent = 0);
    protected:
        void mouseMoveEvent(QMouseEvent *e);
        void mousePressEvent(QMouseEvent *e);
    private:
        QPixmap *pixmap;
        QBitmap *bitmap;
        QPainter *painter ;
        QBrush *brush ;
        QPoint last,pos0;
};
myclass::myclass(QWidget *parent)
    : QWidget(parent,Qt::X11BypassWindowManagerHint)
{
    setGeometry(200,200,800,120);
    brush =new QBrush();
    brush->setStyle(Qt::SolidPattern) ;
    brush->setColor(Qt::gray) ;
    pixmap=new QPixmap(800,120);
    painter =new QPainter(pixmap) ;
   
    //painter->setBackgroundMode(Qt::OpaqueMode);
    painter->begin(this) ;
    painter->setBackground(*brush) ;
    painter->setPen(Qt::red) ;
    painter->drawEllipse(10,0,10,10) ;//画了一个小圆圈,运行时可见。
    painter->end() ;
    QPalette palette;
    palette.setBrush(QPalette::Background, QBrush(*pixmap));
    setPalette(palette);
    setMask(*pixmap);
}
void myclass::mouseMoveEvent(QMouseEvent *e)
{
    if (!(e->buttons() & Qt::LeftButton))
        return;
    QPoint newpos = e->globalPos();
    QPoint upleft = pos0 + newpos - last;
    move(upleft);
}
void myclass::mousePressEvent(QMouseEvent *e)

    if (e->button() == Qt::LeftButton)
    last = e->globalPos();
    pos0 = e->globalPos() - e->pos();
}

int main(int argc,char *argv[])
{
    QApplication a(argc,argv);
    myclass w;
    w.showFullScreen();
    return a.exec();
}

|
该回复于2008-11-05 13:26:51被版主删除

|
你用的版本是多少的,我这里编译不过。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3