from PyQt5 import QtCore, QtGui, QtWidgets import sys from PyQt5.QtGui import * from PyQt5.QtWidgets import * from PyQt5.QtCore import * class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(800, 600) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.graphicsView = QtWidgets.QGraphicsView(self.centralwidget) self.graphicsView.setGeometry(QtCore.QRect(10, 0, 131, 192)) self.graphicsView.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) self.graphicsView.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) self.graphicsView.setObjectName("graphicsView") self.pushButton = QtWidgets.QPushButton(self.centralwidget) self.pushButton.setGeometry(QtCore.QRect(30, 220, 75, 23)) self.pushButton.setObjectName("btn") MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 23)) self.menubar.setObjectName("menubar") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) self.pushButton.clicked.connect(self.btn1) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) self.pushButton.setText(_translate("MainWindow", "btn")) def btn1(self): filename,_=QFileDialog.getOpenFileName(None,'open',r"E:\images1") img=QImage() img.load(filename) img=img.scaled(self.graphicsView.width(),self.graphicsView.height()) scene=QGraphicsScene() scene.addPixmap(QPixmap().fromImage(img)) self.graphicsView.setScene(scene) if __name__=='__main__': app = QtWidgets.QApplication(sys.argv) MainWindow = QtWidgets.QMainWindow() ui = Ui_MainWindow() ui.setupUi(MainWindow) MainWindow.show() sys.exit(app.exec_())
存在的一个问题为,如果将main函数改为:
if __name__=='__main__': app = QtWidgets.QApplication(sys.argv) MainWindow = QtWidgets.QMainWindow() Ui_MainWindow().setupUi(MainWindow) #两步合为一步打开图片出错,? MainWindow.show() sys.exit(app.exec_())
这样无法成功运行。留坑待填