当前位置: 技术问答>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();
}
这段程序是按照做不规则窗口改动的,大家可以试试运行一下。
矩形区域不能填充到背景色,只有零星的一些点,哪位大侠可以指导一下。
#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();
}
|
|
你用的版本是多少的,我这里编译不过。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。