如何在 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
在这里可能是合适的。
各位!我目前正在尝试制作一个将 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
在这里可能是合适的。