用Qt::WA_TranslucentBackground可以使窗体透明,但似乎会带来一些副作用,比如最小化后还原对话框,子控件的焦点会出现问题,还有,vlc视频控件也无法在透明背景的窗体上正常播放。有没有不使用Qt::WA_TranslucentBackground,却也能达到背景透明而控件不透明的效果呢?
------解决方案--------------------
- C/C++ code
QPalette pal = palette(); pal.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x00)); setPalette(pal);
------解决方案--------------------
QColor(0x00,0xff,0x00,0x00));
最后一个参数是透明度,可以自己设置
------解决方案--------------------
我怎么没发现Qt::WA_TranslucentBackground有这个瑕疵?
------解决方案--------------------
QPalette pal = palette();
pal.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x00));
setPalette(pal);
我测试啦下 怎么是全黑的呢