【Qt之QWizard问题】setPixmap()设置logo、background、watermark无效不显示解决方案

问题原因:

使用QWizard或者QWizardPage设置像素图,结果设置完不显示效果。

设置示例:
    setPixmap(QWizard::WatermarkPixmap, QPixmap("xxx/xxx/xxx.png"));
    setPixmap(QWizard::BackgroundPixmap, QPixmap("xxx/xxx/xxx.png"));
    setPixmap(QWizard::LogoPixmap, QPixmap("xxx/xxx/xxx.png"));
    setPixmap(QWizard::BannerPixmap, QPixmap("xxx/xxx/xxx.png"));
预期显示效果:

【Qt之QWizard问题】setPixmap()设置logo、background、watermark无效不显示解决方案_第1张图片

解决方案

首先,我们先看下void setWizardStyle(WizardStyle style) 方法解释:

此属性保存向导的外观 默认情况下,QWizard在启用alpha合成的WindowsVista系统上使用AeroStyle,而不管当前的小部件样式如何。
如果不是这种情况,则默认的向导样式取决于当前小部件的样式如下:如果当前小部件的样式是QMacStyle,则默认为MacStyle,
如果当前小部件的样式是QWindowsStyle,则默认为ModernStyle,而在所有其他情况下默认为ClassicStyle。

说是默认为ClassicStyle,但为啥不显示呢,说明需要手动调用其方法。

setWizardStyle(QWizard::ClassicStyle);

在构造中调用其setWizardStyle()后,设置的像素图就像上图一样显示了。

你可能感兴趣的:(Qt记录,qt,开发语言)