PyQt5 - 在MainWindow布局的背景中添加图像

时间:2016-02-16 02:14:01

标签: python-3.x qwidget pyqt5 qimage qlayout

PyQt5的新功能......这是一个非常基本的问题。

我想在窗口小部件的布局中添加图像。此小部件是我的应用程序的主窗口/根小部件。我使用以下代码,但收到错误消息。

import sys

from PyQt5.QtGui import QImage
from PyQt5.QtWidgets import *

class MainWindow(QWidget):

    def __init__(self):

       super().__init__()

       self.setGeometry(300,300,300,220)
       self.setWindowTitle("Hello !")

       oImage = QImage("backgound.png")

       oLayout = QVBoxLayout()
       oLayout.addWidget(oImage)

       self.setLayout(oLayout)

       self.show()

if __name__ == "__main__":

    app = QApplication(sys.argv)

    oMainwindow = MainWindow()

    sys.exit(app.exec_())


TypeError: QBoxLayout.addWidget(QWidget, int stretch=0, Qt.Alignment alignment=0): argument 1 has unexpected type 'QImage'

显然,QLayoutWidget不接受QImage作为输入。是否有解决方法让图像在QWidget中显示为括号?

1 个答案:

答案 0 :(得分:2)

  

QVBoxLayout类垂直排列小部件。

documentation QVBoxLayout

import MySQLdb cnn = MySQLdb.connect(user="login", passwd="passwd", db="some db") # subject to hang cur = cnn.cursor() cur.execute("some sql") # subject to hang cnn.commit() # maybe subject to hang cur.close() 不是小部件。

许多小部件上的

,例如QImageQmainWindow您可以使用

QLabel

在我的机器上,这不适用于widget.setStyleSheet(„ background-image: url(backgound.png);“) 。在这种情况下,您可以使用以下代码重写:

QWidget