How to make brackground transparent
-
I've built a custom QScrollArea-based widget, but it's default background was some color. I'd like to make background transparent so that it could display widgets which were even under it if overlapped.
However I didn't see there's a transparent role in setBackgroundRole(), then how could I do?thx.
-
setAutoFillBackground didn't simply work.
WA_NoBackground was obsolete and the successor WA_OpaquePaintEvent said in opposite way, and didn't work either.
WA_NoSystemBackground and WA_TranslucentBackground ended up with a little bit repainting issue, since it never automatically updated newly exposed area, for instance. Then the tough part would turn to that I have to paint everything underneath the widget.If memory severed me, QFrame is by default transparent, don't know how it get that.
[quote author="Gerolf" date="1295255973"]You can try, setting these attributes on the widget:
setAttribute(Qt::WA_NoBackground);
setAttribute(Qt::WA_NoSystemBackground);
setAttribute(Qt::WA_TranslucentBackground);
additionally, you could set setAutoFillbackground(false).[/quote]
-
-
its little bit old, but the problem seems to be still up to date.
if you use
scroll->setStyleSheet("background-color:transparent;");
its working pretty good, but the "Scroll Bar" is getting transparent too,
making it pretty hard to scroll.if someone knows how to fix it, please post.
-
my fault, I didnt
#include <qscrollbar.h>@scroll_gunshop->verticalScrollBar()->setStyleSheet("background-color:red");@
but there is still a little "pattern" in there.
the part where the scroll bar is not covered.http://img534.imageshack.us/img534/2594/ddddiw.jpg
but looks almost perfect.
thanks*
€ or maybe this is just the normal "natural" scroll bar pattern
if you use white it's gone. -
You can customize everything in the scrollbar just by using css... try taking a look "here":http://doc.qt.digia.com/qt/stylesheet-examples.html#customizing-qscrollbar and try out different css commands...
-
hope this will be helpful to you
setAttribute(Qt::WA_TranslucentBackground); setAttribute(Qt::WA_NoSystemBackground,false); setWindowFlags(Qt::FramelessWindowHint); setStyleSheet("font-weight:bold;color:white;" "background-color: rgba(0,0,0,80%);" "font: bold 20px;" "font-weight:bold;" );