在QDialog中实验结果:
1. setWindowOpacity
在dialog中实验,没效果!
2. QPalette
在构造函数中使用:
QPalette pal = palette();
pal.setColor(QPalette::Background, QColor(0x00,0x15,0x20,0x00));
setPalette(pal);
将把最后一次对话框弹出的背景图片半透明显示出来,但是不能刷新背景图片,也就是说,如果背景本来是动态的,在此处无法显示出来。而且随着点击dialog,会出现变的不够透明的情况。
在后面加上setAutoFillBackground(true );也无济于事。
如果把这些写在paintEvent里面是没有效果的。
3. paintEvent
在paintEvent里面
QPainter p(this);
p.setCompositionMode( QPainter::CompositionMode_Clear ); //CompositionMode_Source一样
p.fillRect(rect(), QColor(0,0,0,80));
也是效果同上。全部都是静态的,不能动态传递背景图片。
以上静态均是使用了setSoftKeyRole,如果不使用则可以有动态背景透出。
EEikDialogFlagNoBackgroundFade标志在resource里面修改据说可以达到显示对话框的时候不会变灰的效果,不过还没有测试过,等以后试过了再说这个问题.