【问题标题】:How to apply an image to Widget Background (superimposing)如何将图像应用到小部件背景(叠加)
【发布时间】:2014-05-23 18:22:18
【问题描述】:

我想为 QListWidget 或 QWidget 等小部件分配背景图像。 这是想法:

理想情况下,背景图像会在其小部件大小发生变化时调整大小。任何想法如何实现它?

稍后编辑:

这是对话框的屏幕截图,其中包含 Salvatore 的建议已实施。 如果使用的背景图像是 PNG,则使用其图层不透明度,您可以控制它的可见程度(淡出)。我喜欢它....谢谢!


from PyQt4 import QtGui, QtCore

class MyApp(object):    
    def __init__(self):
        super(MyApp, self).__init__()                
        self.mainWidget = QtGui.QWidget()
        self.mainLayout = QtGui.QVBoxLayout()
        self.mainWidget.setLayout(self.mainLayout)

        self.hLayout = QtGui.QHBoxLayout()
        self.mainLayout.insertLayout(0, self.hLayout)
        self.listA=QtGui.QListWidget()
        for i in range(3):
            self.listA.addItem('Item '+str(i))
        self.hLayout.addWidget(self.listA)

        self.buttonGroupbox = QtGui.QGroupBox()
        self.buttonlayout = QtGui.QVBoxLayout()
        self.buttonGroupbox.setLayout(self.buttonlayout)

        okButton = QtGui.QPushButton('OK')
        self.buttonlayout.addWidget(okButton)

        self.mainLayout.addWidget(self.buttonGroupbox)
        self.mainWidget.show()
        sys.exit(app.exec_())

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    MyApp()

【问题讨论】:

    标签: python pyqt


    【解决方案1】:

    也许您可以为目标小部件设置样式表:

    self.listA.setStyleSheet("""
        color: white; 
        background-image: url(./your_image.jpg);
        background-attachment: scroll;
    """);
    

    但使用此代码,您的图像不会自行调整大小。

    【讨论】:

    • 我刚刚发布了结果的屏幕截图。它工作得很好。 QListWidget() Items styleSheet 也需要设置或定义,因为 listItems 默认样式值现在被 QListWidget 的样式表覆盖,从而使 Items 字体为浅灰色(实际上是白色)。底线是可行的工作。只是需要一些额外的时间来正确调整每个小部件的外观。感谢您的信息!
    猜你喜欢
    • 2019-07-29
    • 2011-06-26
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-15
    相关资源
    最近更新 更多