pythonフォーム背景画像設定


Qtでのフォームバックグラウンドの設定には、paletteの設定とpaintEventイベント画の設定の2つの方法がありますが、後者は速度が遅く、フォームの初期化時に自動的に実行されます.
painterEventイベントでは、背景を再描画することでフォーム全体の速度に影響するため、paletteを設定することで背景画像を設定するのが一般的ですが、Qtでは直接フォームに画像を設定できますがpyqtでは
直接フォームを設定すると、画面が点滅し、pyqtではQpaletteはグラフィックピクセルを設定できず、色しか設定できない(ColorGroup)と説明されています.
したがって、解決策は、フォームにwidgetコントロールを追加し、widgetに背景画像を設定することです.コードは次のとおりです.
png=QtGui.QPixmap(self)               #      QPixmap  
 png.load("./img2.png")                      #      
 palette1 = QtGui.QPalette(self)  #     QPalette  
 palette1.setBrush(self.backgroundRole(), QtGui.QBrush(png))        
 self.widget.setPalette(palette1);     
 self.widget.setAutoFillBackground(True) 

注意、必ず最後の一言があります