我試圖通過pyside設置QGridLayout小部件的背景圖像(它位於與應用程序相同的文件夾中)我無法看到所有的內容,文檔和論壇帖子關於樣式表「,但我仍然無法弄清楚我做錯了什麼。pyside設置背景圖像通過樣式表不工作
from PySide.QtCore import *
from PySide.QtGui import *
import sys
class Main(QWidget):
def __init__(self, parent=None):
super(Main, self).__init__(parent)
j = 0
pos = [(0, 0), (0, 1), (0, 2), (0, 3),
(1, 0), (1, 1), (1, 2), (1, 3),
(2, 0), (2, 1), (2, 2), (2, 3),
(3, 0), (3, 1), (3, 2), (3, 3),
(4, 0), (4, 1), (4, 2), (4, 3),
(5, 0), (5, 1), (5, 2), (5, 3)]
grid = QGridLayout(self)
items = ["one", "Two", 'Three','four','five']
for e in items:
picture = ImageLabel("Book.png", self)
picture.name = e
picture.setFixedSize(128,128)
picture.mousepos = str(picture.pos())
picture.imageClicked.connect(self.anotherSlot)
grid.addWidget(picture, pos[j][0], pos[j][1])
j = j + 1
picture.setToolTip('This is' + str(e) + ' widget')
picture.imageHovered.connect(self.Item_Hovered)
self.setStyleSheet("QGridLayout {background-image: url(./image.jpg) }");
def anotherSlot(self):
sender = self.sender()
print "I clicked item " + str(sender.name)
def Item_Hovered(self):
sender = self.sender()
print "I'm Hovering over " + str(sender.name)
class ImageLabel(QLabel):
imageClicked = Signal(str) # can be other types (list, dict, object...)
imageHovered = Signal(str)
imageLeave = Signal(str)
def __init__(self, image, parent=None):
super(ImageLabel, self).__init__(parent)
self.setPixmap(image)
# self.setMouseTracking(True)
def mousePressEvent(self, event):
print "from ImageLabel.mousePressEvent()"
self.imageClicked.emit("Image Clicked")
def enterEvent(self, event):
print "from ImageLabel.enterEvent()"
self.imageHovered.emit("Hovering")
def leaveEvent(self, event):
print "from ImageLabel.leaveEvent()"
self.imageLeave.emit("Hovering No More")
a = QApplication([])
m = Main()
m.show()
sys.exit(a.exec_())
任何意見,將不勝感激。
謝謝sherpya,幫助花了一點時間來包裹我的頭,但我得到它的工作。你的解釋讓我困惑的是self.tile,它的實現是實際的pix-map圖像變量 –
,它肯定會讀得更好!添加到我的片段! –