PyQt4
에서 PyQt5
으로 전환했습니다. 내 앱 (QtDesigner로 생성)에는 파일을 저장하려는 경우를 대비하여 "저장"버튼을 활성화하는 체크 박스가 있습니다. PyQt4
에서 대화 상자가 열리면 내 파일을 선택하고 확인을 누릅니다. 경로가 유효하지 않은 경우 오류 메시지가 표시되는 기본 애플리케이션의 확인 버튼에 대한 확인을 구현했습니다. QFileDialog
에서 취소를 누르면QFileDialog 팝업 버튼을 누르면 응용 프로그램이 종료됩니다.
PyQt5
어떤 식 으로든 (OK, 취소, X) QFileDialog
을 닫으면 내 응용 프로그램이 완전히 종료됩니다. QFileDialog를 닫고 내 주 창만 닫으려고합니다. 어떻게해야합니까? 시간과 도움에 감사드립니다.
여기 내 코드의 관련 부분 :
self.path = self.ui.savepathButton.pressed.connect(lambda: self.file_save())
def file_save(self):
path = QFileDialog.getSaveFileName(self, "Choose a path and filename", os.getcwd().replace("\\", "/") +
"/test.stl", filter="Stereolithography Files (*.stl)")
self.ui.savepath_label.setText(path) <------ NO ERROR WITHOUT THIS LINE
def OKButton_click(self):
if os.path.isdir(os.path.split(self.ui.savepath_label.text())[0]) is False:
# Warning if the filename is invalid.
file_error = QMessageBox()
file_error.setIcon(QMessageBox.Warning)
file_error.setText("Invalid path or filename.")
file_error.setInformativeText("Please choose a working path and filename.") file_error.setWindowTitle("File name error")
file_error.setStandardButtons(QMessageBox.Ok)
file_error.exec_()
else:
self.accept()
편집 :
내 오류가있는 위치를 알아,하지만 난 여전히 문제를 해결할 수 없습니다. 코드에 줄을 표시했습니다. self.ui.savepath_label.setText(path)
내 응용 프로그램을 종료하는 이유는 무엇입니까? 분명히 string
자동으로 경로를 기록
PyQt4
동안, PyQt5
은하지 않습니다 :
'str()'에 대한 해결책을 찾았 으면 실제로 튜플을 반환하고 기본적으로 당신이 대답에 대해 잘 설명해주었습니다. 귀하의 매우 통찰력있는 게시물 주셔서 감사합니다! – Ian