2014-09-30 178 views
0

我想設置一個背景圖片到QFrame我在QMainWindows調用像這樣:QPalette,設置背景圖片Python3 PyQt4的

 class MainWin(QtGui.QMainWindow): 

     def __init__(self): 
     super(MainWin, self).__init__() 

     self.initUI() 


     def initUI(self): 


     #central widget 
     self.theboard = Board(self) 
     self.setCentralWidget(self.theboard) 




     class Board(QtGui.QFrame): 

     def __init__(self, parent): 
     super(Board, self).__init__(parent) 

     self.initBoard() 

     def initBoard(self): 

     #Set background Image 
     frame = Board 
     palette = QPalette() 
     palette.setBrush(QPalette.Background,QBrush(QPixmap("ImageTest.jpg"))) 
     frame.setPalette(palette) 

使用Qpalette/QPixmap的,因爲我已經上了一些爲例找到淨。 但它不工作:

self.palette = QPalette() NameError:全局名稱 'QPalette' 沒有定義

爲什麼?在這裏我的班級:班級(QtGui.QFrame):

我很好地繼承QtGui,所以Qpalette應該工作。 我不得不承認我對Qpalette的工作方式有些困惑。

任何幫助很大apreciated,

謝謝!

回答

1

你沒有把它寫在你的代碼中,所以也許你的問題是你沒有導入它。

from PyQt4 import QtCore, QtGui 
from PyQt4.QtGui import QPalette 

如果不是這種情況,試試這個:

palette = QPalette() 
palette.setBrush(QPalette.Background,QBrush(QPixmap("anne.jpg"))) # Haha, aren't I so funny?? 
frame.setPalette(palette) 
+0

嗨,在行動上我不只是寫:進口對稱,隨機 從PyQt4的進口QtCore,QtGui。 由於我導入了QtGui,我期待着我不需要從QtGui導入任何東西......我想這將與QBrush一樣... – 2014-10-01 06:35:55

+0

剛剛改變了那個位:self.setPalette(self.palette)並且把它在最後... 所以沒有更多的錯誤謝謝你,但我仍然無法在後臺顯示我的圖像(我的ImageTest是在我的.py的同一根)... – 2014-10-01 06:46:18

+0

你能編輯你的帖子來顯示整個程序? – 2014-10-01 07:46:54