Python PyQt4如何使用QFileDialog打开图片
Python PyQt4 how to open image using QFileDialog
我必须编写一个带有从文件中打开图像的选项的程序。我必须使用 QFileDialog
并在 QLabel
中显示图像,使用 QPixmap
。我可以单独使用它们,但无法将它们组合起来。
我想我需要从 dlg.selectedFiles
中获取我的图像名称,但我不知道如何选择其中有有用数据的时刻。我是否需要在主程序中循环,并不断检查是否有图像可打开?我可以使用 openAction.triggered.connect(...)
向我的标签发送信号吗?
from PyQt4 import QtGui
import sys
class MainWindow(QtGui.QMainWindow):
def __init__(self, parent = None):
super(MainWindow, self).__init__(parent)
menubar = self.menuBar()
fileMenu = menubar.addMenu('File')
dlg = QtGui.QFileDialog(self)
openAction = QtGui.QAction('Open', self)
openAction.triggered.connect(dlg.open)
fileMenu.addAction(openAction)
#label = QtGui.QLabel(self)
#pixmap = QtGui.QPixmap('')
#label.setPixmap(pixmap)
def main():
app = QtGui.QApplication(sys.argv)
win = MainWindow()
win.show()
app.exec_()
if __name__ == '__main__':
sys.exit(main())
您需要制作自己的插槽并将其连接到 openAction
信号。
在你的 __init__
函数中执行:
openAction.triggered.connect(self.openSlot)
在您的 class MainWindow
中定义以下函数:
def openSlot(self):
# This function is called when the user clicks File->Open.
filename = QtGui.QFileDialog.getOpenFileName()
print(filename)
# Do your pixmap stuff here.
我必须编写一个带有从文件中打开图像的选项的程序。我必须使用 QFileDialog
并在 QLabel
中显示图像,使用 QPixmap
。我可以单独使用它们,但无法将它们组合起来。
我想我需要从 dlg.selectedFiles
中获取我的图像名称,但我不知道如何选择其中有有用数据的时刻。我是否需要在主程序中循环,并不断检查是否有图像可打开?我可以使用 openAction.triggered.connect(...)
向我的标签发送信号吗?
from PyQt4 import QtGui
import sys
class MainWindow(QtGui.QMainWindow):
def __init__(self, parent = None):
super(MainWindow, self).__init__(parent)
menubar = self.menuBar()
fileMenu = menubar.addMenu('File')
dlg = QtGui.QFileDialog(self)
openAction = QtGui.QAction('Open', self)
openAction.triggered.connect(dlg.open)
fileMenu.addAction(openAction)
#label = QtGui.QLabel(self)
#pixmap = QtGui.QPixmap('')
#label.setPixmap(pixmap)
def main():
app = QtGui.QApplication(sys.argv)
win = MainWindow()
win.show()
app.exec_()
if __name__ == '__main__':
sys.exit(main())
您需要制作自己的插槽并将其连接到 openAction
信号。
在你的 __init__
函数中执行:
openAction.triggered.connect(self.openSlot)
在您的 class MainWindow
中定义以下函数:
def openSlot(self):
# This function is called when the user clicks File->Open.
filename = QtGui.QFileDialog.getOpenFileName()
print(filename)
# Do your pixmap stuff here.