标题:请教大神这个该如何实现
作者:一只小鱼
日期:2017-12-06 13:59
内容:
我想在主窗口中点击弹出一个子窗口,设置子窗口半透明,然后想要在子窗口上绘图;我试了两种方法:1,在主窗口中new一个widegt,并设置他的背景为半透明,但我不知道怎么在子窗口上绘图;2,添加一个widget类,然后再主窗口类中new出来,这种的话可以绘图,但是我怎么设置都是全透明的,不知道为什么,本人QT新手,希望有大神可以为我解答
#1 [一只小鱼 12-06 14:54]
没人吗
#2 [uidab 12-06 16:12]
自己继承qwidget然后在paintEvent(QPaintEvent *event)里面绘制
#3 回 uidab 的帖子 [一只小鱼 12-06 16:54]
uidab:自己继承qwidget然后在paintEvent(QPaintEvent *event)里面绘制 (2017-12-06 16:12)
版主,我是这样做的,我在主窗口类中new一个widget,但是paintEvent(QPaintEvent *event)是在主窗口类中声明的,我绘制的话在主窗口上能显示,子窗口没有,我是这样写的
void ShowWidget::paintEvent(QPaintEvent *){
painter = new QPainter;
painter->begin(this);
painter->setPen(QPen(Qt::white,Qt::SolidLine));
painter->drawEllipse(300,100,200,400);
painter->end();}
将this改成子窗口也没用,不知道该怎么写
#4 [一只小鱼 12-06 17:06]
添加一个Qwidget类的话可以绘制,但是那样的话不知道怎样实现半透明,很纠结
#5 [大漠之鹰 12-06 17:58]
写一个继承自QWidget的类,在子类中实现paintEvent,绘制的时候设置alpha通道的值试试看可不可以实现透明效果