我使用Qt Designer构建GUI,Gui有一个水平布局的中央窗口小部件,以及QGraphicView(名称为leftImage和RightImage)的子窗口
在菜单栏中,我创建了两个按钮 - "打开左图像"和"打开右图像"
我已设法使用此按钮(它会打开打开的对话框并正确选择正确的文件),但我无法在GUI上看到图像。
这是我的代码:
#!/usr/bin/env python
import sys
from PyQt4 import QtCore, QtGui, uic
form_class = uic.loadUiType("try2gui.ui")[0]
class MyWindowClass(QtGui.QMainWindow, form_class):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self, parent)
self.setupUi(self)
self.initMenu()
image = QtGui.QImage('image.pgm')
self.LeftImage = QtGui.QPixmap(image)
self.RightImage = QtGui.QPixmap(image)
self.show()
def initMenu (self):
self.actionOpen_Left.triggered.connect(self.open_left)
self.actionOpen_Right.triggered.connect(self.open_Right)
self.actionExit.triggered.connect(self.close)
def open_left(self):
fileName = QtGui.QFileDialog.getOpenFileName(self, "Open File", QtCore.QDir.currentPath())
if fileName:
image = QtGui.QImage(fileName)
if image.isNull():
QtGui.QMessageBox.information(self, "Image Viewer", "Cannot load %s." % fileName)
return
self.centralwidget.LeftImage = QtGui.QPixmap(image)
self.scaleFactor = 1.0
print fileName
def open_Right(self):
fileName = QtGui.QFileDialog.getOpenFileName(self, "Open File", QtCore.QDir.currentPath())
if fileName:
image = QtGui.QImage(fileName)
if image.isNull():
QtGui.QMessageBox.information(self, "Image Viewer", "Cannot load %s." % fileName)
return
self.RightImage = QtGui.QPixmap(image)
self.scaleFactor = 1.0
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
myWindow = MyWindowClass(None)
myWindow.show()
app.exec_()
如何更新GUI以查看加载的图像?
答案 0 :(得分:0)
我找到了解决方案:
我已将左开放功能更改为:(与open_right相同):
def open_left(self):
fileName = QtGui.QFileDialog.getOpenFileName(self, "Open File", QtCore.QDir.currentPath())
if fileName:
image = QtGui.QImage(fileName)
if image.isNull():
QtGui.QMessageBox.information(self, "Image Viewer", "Cannot load %s." % fileName)
return
#added this code:
leftPixelMap = QtGui.QPixmap(fileName)
lable = QtGui.QLabel(self.LeftImage)
lable.setPixmap(leftPixelMap)
lable.show()
self.scaleFactor = 1.0
现在可以使用了
答案 1 :(得分:0)
在您的问题中,您使用的是angular.module('myApp', [
'ngRoute',
'myApp.view1',
'myApp.view2',
'myApp.version'
]).
config(['$routeProvider', function($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'partials/home.html',
controller: 'HomeCtrl'
})
.otherwise({redirectTo: '/'});
}]);
,它不是用于显示图片的正确小部件。
正如您发现的那样,使用QGraphicView
并设置像素图。
此外,QLabel
无法正常工作
这应该是self.LeftImage = QtGui.QPixmap(image)
而且:在你的"开放"例程,通过self.LeftImage.setPixmap(QtGui.QPixmap(image))
引用窗口小部件 - 而不是self.LeftImage
,因为您将它们分配给中央窗口小部件,但它们不属于(在层次结构中)它们。