当前位置: 技术问答>linux和unix
大家好,我想用QT实现类似于腾讯QQ截图的功能.
来源: 互联网 发布时间:2016-03-02
本文导语: 大家好,我是QT初学者, 我想用QT实现类似于腾讯QQ截图的功能,请高手指点指点. 在拖动鼠标的时候,是不是有一种控件来画那个可自定义拖动和改变大小的矩形呢,如果没有,我应该如何动手来完成这一部分的工作...
大家好,我是QT初学者,
我想用QT实现类似于腾讯QQ截图的功能,请高手指点指点.
在拖动鼠标的时候,是不是有一种控件来画那个可自定义拖动和改变大小的矩形呢,如果没有,我应该如何动手来完成这一部分的工作,
请高手们指点指点..万分感谢..
我想用QT实现类似于腾讯QQ截图的功能,请高手指点指点.
在拖动鼠标的时候,是不是有一种控件来画那个可自定义拖动和改变大小的矩形呢,如果没有,我应该如何动手来完成这一部分的工作,
请高手们指点指点..万分感谢..
|
根据鼠标的移动事件,自己划线也不太麻烦啊.
我的一段划线代码,不过我这是固定区域,
QPixmap jpeg1,pix;
QPainter line;
jpeg1.load("/tmp/zp.jpg");//°ÑÕÕƬµ¼ÈëÒ»¸ö±äÁ¿ÄÚ
line.begin(&jpeg1,this);
line.setPen(QPen(black,1,DashDotLine));
line.drawLine(73,0,73,240);
line.drawLine(73,240,247,240);
line.drawLine(248,0,248,240);
line.drawLine(140,120,180,120);
line.drawLine(160,100,160,140);
line.end();
bitBlt(this, 0, 0, &jpeg1);
form2->pixmapLabel2_3_2->setPaletteBackgroundPixmap(jpeg1); //°ÑÕÕƬÔÚ»²¼ÄÚÕ¹¿ª
form2->pixmapLabel2_3_2->show();
QApplication::flush();
return ;
一段截屏代码
QPixmap jpeg1,pix;
jpeg1.load("/tmp/zp.jpg");
form2->pixmapLabel2_3_2->setGeometry(31,20,258,194);
form2->pixmapLabel2_3_2->setPixmap(jpeg1); //°ÑÕÕƬÔÚ»²¼ÄÚÕ¹¿ª
form2->pixmapLabel2_3_2->show();
QApplication::flush();
pix=QPixmap::grabWindow(this->winId(),90,20,140,194);
remove("/tmp/zp.jpg");
if(pix.isNull())
{
printf("getpic err!n");
}
else
{
if(pix.save( "/tmp/zp.jpg", "JPEG" )==false)//±£´æ½ØÈ¡µÄÕÕƬ
{
printf("save err!n");
}
}
form2->pixmapLabel2_3_2->setGeometry(0,-21,320,240);
form2->pixmapLabel2_3_2->clear();
我的一段划线代码,不过我这是固定区域,
QPixmap jpeg1,pix;
QPainter line;
jpeg1.load("/tmp/zp.jpg");//°ÑÕÕƬµ¼ÈëÒ»¸ö±äÁ¿ÄÚ
line.begin(&jpeg1,this);
line.setPen(QPen(black,1,DashDotLine));
line.drawLine(73,0,73,240);
line.drawLine(73,240,247,240);
line.drawLine(248,0,248,240);
line.drawLine(140,120,180,120);
line.drawLine(160,100,160,140);
line.end();
bitBlt(this, 0, 0, &jpeg1);
form2->pixmapLabel2_3_2->setPaletteBackgroundPixmap(jpeg1); //°ÑÕÕƬÔÚ»²¼ÄÚÕ¹¿ª
form2->pixmapLabel2_3_2->show();
QApplication::flush();
return ;
一段截屏代码
QPixmap jpeg1,pix;
jpeg1.load("/tmp/zp.jpg");
form2->pixmapLabel2_3_2->setGeometry(31,20,258,194);
form2->pixmapLabel2_3_2->setPixmap(jpeg1); //°ÑÕÕƬÔÚ»²¼ÄÚÕ¹¿ª
form2->pixmapLabel2_3_2->show();
QApplication::flush();
pix=QPixmap::grabWindow(this->winId(),90,20,140,194);
remove("/tmp/zp.jpg");
if(pix.isNull())
{
printf("getpic err!n");
}
else
{
if(pix.save( "/tmp/zp.jpg", "JPEG" )==false)//±£´æ½ØÈ¡µÄÕÕƬ
{
printf("save err!n");
}
}
form2->pixmapLabel2_3_2->setGeometry(0,-21,320,240);
form2->pixmapLabel2_3_2->clear();