2015-11-27 3 views
0

Мне нужно написать программу с возможностью открытия изображения из файла. Я должен использовать QFileDialog и показывать изображение в QLabel, используя QPixmap. Я могу использовать их отдельно, но мне не удалось их комбинировать. Я думаю, мне нужно взять имя моего изображения от dlg.selectedFiles, но я не знаю, как выбрать момент, когда в нем есть полезные данные. Мне нужно сделать цикл в моей основной программе и постоянно проверять, есть ли изображение для открытия? Могу ли я отправить сигнал на мой ярлык, используя openAction.triggered.connect(...)?Python PyQt4 как открыть изображение с помощью QFileDialog

from PyQt4 import QtGui 
import sys 

class MainWindow(QtGui.QMainWindow): 

    def __init__(self, parent = None): 
     super(MainWindow, self).__init__(parent) 
     menubar = self.menuBar() 
     fileMenu = menubar.addMenu('File') 
     dlg = QtGui.QFileDialog(self)  
     openAction = QtGui.QAction('Open', self) 
     openAction.triggered.connect(dlg.open)  
     fileMenu.addAction(openAction) 
     #label = QtGui.QLabel(self) 
     #pixmap = QtGui.QPixmap('') 
     #label.setPixmap(pixmap) 

def main(): 
    app = QtGui.QApplication(sys.argv) 
    win = MainWindow() 
    win.show() 
    app.exec_() 

if __name__ == '__main__': 
    sys.exit(main()) 

ответ

1

Вы должны сделать свой собственный слот и подключить его к openAction сигнала.
В вашей __init__ функции делают:

openAction.triggered.connect(self.openSlot) 

В классе MainWindow определить следующую функцию:

def openSlot(self): 
    # This function is called when the user clicks File->Open. 
    filename = QtGui.QFileDialog.getOpenFileName() 
    print(filename) 
    # Do your pixmap stuff here. 
Смежные вопросы