2014-11-28 8 views
0

Pls이 코드에 도움이, 사촌 정말 개념을 얻을하지 않습니다. qwidget의 버튼을 클릭하여 대화 상자를 시작합니다. 또한 대화 상자에서 다른 단추 (img_btn)를 클릭하여 위의 qdialog에 이미지를 표시하고 싶습니다. 나는 몇 가지 코드 아래에 추가 한 :이미지를 qdialog에 어떻게 표시 할 수 있습니까?

코드에서 두 가지 실수가 모든
from PyQt4.QtCore import * 
from PyQt4.QtGui import * 
import sys 

class BasicWidget(QWidget): 
    def __init__(self, parent=None): 
     super(BasicWidget, self).__init__() 

     layout = QVBoxLayout() 
     self.btn = QPushButton('Show Dialog') 
     layout.addWidget(self.btn) 
     self.setLayout(layout) 
     self.show() 

     self.btn.clicked.connect(self.showpic) 

    def showpic(self): 
     imgshow = PaintPicture() 

class PaintPicture(QDialog): 
    def __init__(self, parent=None): 
     super(PaintPicture, self).__init__() 

     layout = QVBoxLayout() 
     self.img_btn = QPushButton('Enter') 
     layout.addWidget(self.img_btn) 

     filename = r'\\some\basic\picture.jpg' 
     image = QImage(filename) 

     self.imageLabel = QLabel() 
     self.imageLabel.setPixmap(QPixmap.fromImage(image)) 

     layout.addWidget(self.imageLabel) 

     self.setLayout(layout) 
     self.show() 

if __name__ =="__main__": 
    app = QApplication(sys.argv) 
    widget = BasicWidget() 
    sys.exit(app.exec_()) 

답변

0

첫째 :

  1. imgshow = PaintPicture()self.imgshow = PaintPicture()

  2. 경로가 같은 나를 위해 작동하지 않습니다해야한다 이 filename = r'\\some\basic\picture.jpg'이지만 작동 방식은 다음과 같습니다. filename = r'./some/basic/picture.jpg'

자, 이해한다면, "입력"버튼 만있는 대화 상자를 열려고합니다. 해당 버튼을 누르면 같은 대화 상자의 단추 아래에 이미지가 표시됩니까? 그렇다면 코드는 다음과 같습니다.

from PyQt4.QtCore import * 
from PyQt4.QtGui import * 
import sys 

class BasicWidget(QWidget): 
    def __init__(self, parent=None): 
     super(BasicWidget, self).__init__() 

     layout = QVBoxLayout() 
     self.btn = QPushButton('Show Dialog') 
     layout.addWidget(self.btn) 
     self.setLayout(layout) 
     self.show() 

     self.btn.clicked.connect(self.showpic) 

    def showpic(self): 
     self.imgshow = PaintPicture() 

class PaintPicture(QDialog): 
    def __init__(self, parent=None): 
     super(PaintPicture, self).__init__() 

     layout = QVBoxLayout() 
     self.img_btn = QPushButton('Enter') 
     self.img_btn.clicked.connect(self.showImage) 
     layout.addWidget(self.img_btn) 

     self.setLayout(layout) 
     self.show() 

    def showImage(self): 
     filename = r'./some/basic/picture.jpg' 
     image = QImage(filename) 

     self.imageLabel = QLabel() 
     self.imageLabel.setPixmap(QPixmap.fromImage(image)) 

     layout = self.layout() 
     layout.addWidget(self.imageLabel) 

if __name__ =="__main__": 
    app = QApplication(sys.argv) 
    widget = BasicWidget() 
    sys.exit(app.exec_())