728x90
    반응형

    예시

    폴더를 불러오고, 컨트롤에 폴더 경로를 띄워줄 때 경로가 길다면 윈도우 크기가 그에 맞춰 가로로 길어진다. 

    하지만 같은 함수 안에서 호출되는 load_and_display_image에서는 image_viewer 사이즈에 맞춰 이미지를 출력하지만, 

    크기가 늘어나기 전 윈도우 사이즈에 맞춰 이미지가 출력된다. 

     

    PyQT가 UI를 한번에 처리해서 문제 발생

     

    update()

    repaint()

    등등 해봤지만 해결되지 않았다. 

    해결 방법

    from PyQt5.QtCore import QCoreApplication
    
    QCoreApplication.processEvents()  # 이벤트 루프를 실행하여 UI 업데이트가 발생하도록 함
    self.adjustSize()

     

    문제되는 코드

    def select_folder(self):
        self.folder_path = QFileDialog.getExistingDirectory(self, "폴더 선택")
        self.folder_label.setText("선택한 폴더: " + self.folder_path)
    
        self.width_input.setText("0")
        self.height_input.setText("0")
        self.x_offset_input.setText("0")
        self.y_offset_input.setText("0")
    
        # Load image paths
        self.load_image_paths()
    
        # Display the first image
        if len(self.image_paths) > 0:
            self.load_and_display_image(self.image_paths[self.current_image_index])
        else:
            QMessageBox.critical(self, "오류", "폴더 내에 이미지가 없습니다.")
    

     

    수정된 코드

    def select_folder(self):
        self.folder_path = QFileDialog.getExistingDirectory(self, "폴더 선택")
        self.folder_label.setText("선택한 폴더: " + self.folder_path)
    
        QCoreApplication.processEvents()  # 이벤트 루프를 실행하여 UI 업데이트가 발생하도록 함
        self.adjustSize()
    
        self.width_input.setText("0")
        self.height_input.setText("0")
        self.x_offset_input.setText("0")
        self.y_offset_input.setText("0")
    
        # Load image paths
        self.load_image_paths()
    
        # Display the first image
        if len(self.image_paths) > 0:
            self.load_and_display_image(self.image_paths[self.current_image_index])
        else:
            QMessageBox.critical(self, "오류", "폴더 내에 이미지가 없습니다.")

     

    728x90
    반응형
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기