2017-11-05 3 views
0

를 클릭 할 때 호출되는 함수의 내부 변수의 값을 사용하는 방법 :파이썬 - 버튼이이 같은 파이썬 코드의 조각이

class MainWindow(QtGui.QMainWindow): 
    def __init__(self): 
     QtGui.QMainWindow.__init__(self) 

    --snip--   

     self.ui.pushButton.clicked.connect(self.selectFile) 
     someParameter = someFunction(self.filename) # (1) 

    def selectFile(self): 
     self.ui.lineEdit.setText(QtGui.QFileDialog.getOpenFileName()) 
     self.filename = self.ui.lineEdit.text() # I want to use "filename" variable in (1) 

    --snip-- 

내가 파일의 이름을 잡으려면을 QFileDialog에 의해 선택되고 두 가지 작업을 수행합니다. 첫째로, 라인 에디트 위젯에 파일의 주소를 보여주고 둘째로 파일의 주소를 변수에 저장하면 나중에 나머지 프로세스에서 사용할 수 있습니다. 어떻게해야합니까? 적절한 방법은 무엇입니까?

답변

1

당신은 객체 지향 프로그래밍에 익숙하지 않은 것 같습니다. 객체 지향 프로그래밍에서 Class에는 membermethod이 있습니다.

나중에 처리 할 수 ​​있도록 member을 정의해야합니다. 따라서 member이 객체 지향 프로그래밍에 대해 학습해야합니다. 여기

편집

class MainWindow(QtGui.QMainWindow): 
    def __init__(self): 
     QtGui.QMainWindow.__init__(self) 
     self.filename = "" 
     self.someParameter = None 

    --snip--   

     self.ui.pushButton.clicked.connect(self.selectFile) 

    def setParameter(self): 
     self.someParameter = someFunction(self.filename) 

    def selectFile(self): 
     self.filename = QtGui.QFileDialog.getOpenFileName() 
     self.ui.lineEdit.setText(self.filename) 
     self.setParameter() 

    --snip-- 

QFileDialog.getOpenFileName을 사용하는 일부 샘플 코드입니다. 이 시도.

from PyQt5.QtWidgets import QWidget, QPushButton, QFileDialog, QVBoxLayout, QApplication 
from PyQt5 import QtGui 

class my_ui(QWidget): 
    def __init__(self, parent=None): 
     super(my_ui, self).__init__() 
     self.filename = "" 
     self.button1 = QPushButton("show dialog", parent) 
     self.button2 = QPushButton("do something", parent) 
     self.button1.clicked.connect(self.show_dialog) 
     self.button2.clicked.connect(self.do_something) 
     self.layout = QVBoxLayout() 
     self.layout.addWidget(self.button1) 
     self.layout.addWidget(self.button2) 
     self.setLayout(self.layout) 
    def show_dialog(self): 
     self.filename = QFileDialog.getOpenFileName() 
     print("filename updated: '%s'"%str(self.filename)) 
    def do_something(self): 
     print("filename = '%s'"%str(self.filename)) 

app = QApplication([]) 
sample_ui = my_ui() 
sample_ui.show() 
app.exec_() 
+0

값이 업데이트되었는지 어떻게 확인할 수 있습니까? (단지 값을 확인하기 위해 인쇄물을 사용하는 것과 같다) – gnome

+0

@gnome : 어떤 변수를 확인하고 어떤 방법을 사용 했습니까? –

+0

FileDialog에서 선택한 파일 이름을 사용하고 나중에 다른 모듈을 사용하여 파일을 열고 싶습니다. (내부의 데이터를 읽고 수학적으로 처리하기 위해) – gnome

관련 문제