2017-07-31 24 views
0

Qt Creatorでボタン、スライダ、およびいくつかのラベルを使用してGUIを作成しました。Qt GUI(Python)でボタンを押したときに画像を表示する

私が試していること:ボタンを押すと、端末とラベルに、スライダの変更された値が印刷され、イメージが表示されます。多くのWebページが示唆しているように、私はpixmapメソッドを使用してイメージをラベルに表示しようとしています。これは、それがエラーを示していないが、画像が表示されていない、私の全体のコード

import sys 
from PyQt4 import QtCore, QtGui, uic 

qtCreatorFile = "mainwindow.ui" 

Ui_MainWindow, QtBaseClass = uic.loadUiType(qtCreatorFile) 

class myownGUI(QtGui.QMainWindow, Ui_MainWindow): 
    def __init__(self): 
     QtGui.QMainWindow.__init__(self) 
     Ui_MainWindow.__init__(self) 
     self.setupUi(self) 


     #button 
     self.Do_button.clicked.connect(self.action) 

     #slider 
     self.SLIDER.valueChanged[int].connect(self.SLIDER_update) 

     #"global" variable init. by callback 
     self.SLIDER_update() 


    #The button callback 
    def action(self): 
     print "DOING ACTION!" 
     print self.Slider 
     #trying to display the image in the Image_label 
     image = QtGui.QImage(QtGui.QImageReader(":/images/test.png").read()) 
     self.Image_label.setPixmap(QtGui.QPixmap(image)) 
     #self.Image_label.show() #unuseful command? 


    #Slider update callback 
    def SLIDER_update(self): 
     self.Slider= self.SLIDER.value() 
     if (self.Slider % 2 == 0): #even 
      self.Slider = self.Slider + 1 
     self.Slider_label.setText(str(self.Slider)) 

if __name__ == "__main__": 
    app = QtGui.QApplication(sys.argv) 
    window = myownGUI() 
    window.show() 
    sys.exit(app.exec_()) 

コードが実行される(GUIの構造がインポートmainwindow.uiファイル内にある)です。 JPGとPNGの両方の画像を試しました。画像が同じフォルダにある場合は、単純な画像名も試しました。

私のコードで何が間違っていますか? QTで画像をGUIの中に表示するもう1つの方法があります(Pythonで)?私は、スタックオーバーフローのすべての同様の質問を読み取ろうとUbuntuの14.04/Qtのバージョン4.8.6

はと仕事を事前に

、ありがとうございました。私の質問は重複しているようですが、答えのどれも私の問題を解決するものではありません。

EDIT:画像は

image = QtGui.QImage(QtGui.QImageReader("./test.png").read()) 

今の画像が表示されている

のように、同じフォルダであり、唯一の再スケーリングされるようにしているとき PRMoureu's syntaxを使用するには、それも動作します。

答えて

1

あなたは別のパス構文で画像を呼び出す必要があります:

image = QtGui.QImage(QtGui.QImageReader("./images/test.png").read()) 

または

image = QtGui.QImage(QtGui.QImageReader("images/test.png").read()) 
+0

それは働きました!どうもありがとうございました。 – marcoresk

関連する問題