如何在 PyQt4 中加载文件?

How to load a file in PyQt4?

各位!我目前正在尝试制作一个将 load/display 图片的程序。到目前为止,我已经成功创建了一个能够浏览和 select 您的文件的按钮。但是,我不知道之后该怎么办。我的目标是至少成功加载和显示图像。我对编程还是很陌生,但愿意学习!非常感谢!

下面是我创建的代码。我真的只需要帮助我下一步该做什么。我不知道接下来应该写什么功能。谢谢!

__author__ = 'Jay'

import sys
from PyQt4 import QtGui, QtCore

class Window(QtGui.QMainWindow):

    def __init__(self):
        super(Window, self).__init__()
        self.setGeometry(0, 0, 500, 500)
        self.setWindowTitle('Laser Scan')
        self.setWindowIcon(QtGui.QIcon('Laser.png'))
        self.home()

        self.show()

    def home(self):
        btn = QtGui.QPushButton("Select File...", self)
        btn.clicked.connect(self.file_open)
        btn.resize(100, 25)
        btn.move(0, 10)


        self.show()

    def file_open(self):
        name = QtGui.QFileDialog.getOpenFileName(self, 'Open File')
        file = open(name, 'r')

def run():
    app = QtGui.QApplication(sys.argv)
    GUI = Window()
    sys.exit(app.exec_())

run()

在 Qt 中显示文件中的图像非常容易。您只需要找到合适的小部件。在这种情况下,我建议您使用 QLabel。这可以显示 QPixmap 并且包含从文件构造所需的代码:

def file_open(self):
    name = QtGui.QFileDialog.getOpenFileName(self, 'Open File')
    qp = QtGui.QPixmap(name)
    self.ql = QtGui.QLabel(None)
    self.ql.setPixmap(qp)
    self.ql.move(200,200)
    self.ql.show()

请注意我在这里将 QLabel 分配给实例变量 self.ql 的方式:因为它是顶级 window,所以它在 [=15] 中没有父级=] 层次结构,因此如果我们不保留对它的引用,它将立即被垃圾收集。无论如何,如果我们打算对新小部件执行任何操作,我们将需要该参考。

但是,您的代码提示您要在您已经构建的顶层 window 中显示图像。这并不是特别难:您可以像按钮一样将它添加到父级 window。但是,您随后需要更动态地布置此 window。例如,QVBoxLayout 在这里可能是合适的。