大家好!我目前正在尝试制作一个可以加载/显示图像的程序。到目前为止,我已经成功创建了一个能够浏览和选择文件的按钮。但是,之后我不知道该怎么办。我的目标是至少成功加载和显示图像。我对编程还很新,但我愿意学习!非常感谢你!
下面是我创建的代码。我真的只需要帮助我接下来应该做什么。我迷失了接下来应该写的功能。谢谢!
__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()
答案 0 :(得分:0)
在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
的方式:因为它是顶级窗口,所以它不是QObject
层次结构中的父级,因此它如果我们不坚持参考它将立即被垃圾收集。无论如何,如果我们打算对新的小部件做任何事情,我们将来会想要这个参考。
但是,您的代码暗示您要在已构建的顶级窗口中显示图像。这并不是特别困难:你可以像按钮一样将它添加到父窗口。但是,您需要更动态地布置此窗口。例如,QVBoxLayout
可能适合此处。