代码之家  ›  专栏  ›  技术社区  ›  TheCrystalShip

pyqt5-如何在qmainwindow类中显示图像?

  •  0
  • TheCrystalShip  · 技术社区  · 6 年前

    我正在尝试在qmainwindow类中显示图片:

    from PyQt5.QtWidgets import QLabel, QMainWindow, QApplication
    from PyQt5.QtGui import QPixmap
    import sys
    
    
    class Menu(QMainWindow):
    
        def __init__(self):
            super().__init__()
            self.setWindowTitle("Title")
            label = QLabel(self)
            pixmap = QPixmap('capture.png')
            label.setPixmap(pixmap)
            self.resize(pixmap.width(), pixmap.height())
            self.show()
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        ex = Menu()
        sys.exit(app.exec_())
    

    但它不显示图像,只打开窗口。我坚持要 QMainWindow 类,因为我正在尝试编写类似于绘画应用程序的内容,所以我可以编写菜单,也可以在图片上书写。

    任何建议都将不胜感激。

    谢谢。

    1 回复  |  直到 6 年前
        1
  •  2
  •   S. Nick    6 年前

    qmainwindow.setcentralwidget(小部件)

    将给定的小部件设置为主窗口的中央小部件。

    < /块引用>

    from pyqt5.qtwidgets import qlabel,qmainwindow,qapplication,qwidget,qvboxlayout
    从pyqt5.qtgui导入qpixmap
    导入系统
    
    
    类菜单(qmainwindow):
    
    定义初始化(self):
    super()初始化
    self.setWindowTitle(“标题”)
    
    self.central_widget=qwidget()。
    self.setcentralwidget(self.central_小部件)
    lay=qvboxlayout(self.central_小部件)
    
    label=qlabel(自我)
    pixmap=qpixmap('logo.png')
    label.setpixmap(像素地图)
    self.resize(pixmap.width(),pixmap.height())
    
    lay.addwidget(标签)
    self.show()。
    
    
    如果“名称”=
    app=qapplication(系统argv)
    ex=菜单()
    系统退出(app.exec_u())
    

    from PyQt5.QtWidgets import QLabel, QMainWindow, QApplication, QWidget, QVBoxLayout from PyQt5.QtGui import QPixmap import sys class Menu(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("Title") self.central_widget = QWidget() self.setCentralWidget(self.central_widget) lay = QVBoxLayout(self.central_widget) label = QLabel(self) pixmap = QPixmap('logo.png') label.setPixmap(pixmap) self.resize(pixmap.width(), pixmap.height()) lay.addWidget(label) self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Menu() sys.exit(app.exec_())

    enter image description here