code243031 / StockAdvisorSystem

본 프로그램은 주식 중개소로 운영되는, HTML로 작성된 사이트를 위주로 크롤링 기법을 적용하여 얻은 주가정보, 제무재표, 차트, 투자의견 등을 종합하여 기술적 지표를 도출해 궁극적으로 사용자의 투자 판단에 도움을 주는 조언들과 포트폴리오를 만들어 내는데 목적을 두는 프로그램을 설계한다.
The Unlicense
0 stars 0 forks source link

QDialog가 활성화 된 동안, 다른 창은 활성화가 안되게 하는법은 무엇일까? #3

Closed code243031 closed 4 years ago

code243031 commented 4 years ago
class frame_Relatedarticles(QDialog):
    def __init__(self, mainframe):
        super(frame_Relatedarticles, self).__init__(mainframe)
        self.initUI()

    def initUI(self):

        vbox = QVBoxLayout()

        self.setLayout(vbox)
        self.setWindowIcon(QIcon('images\SAS.png'))
        self.setWindowTitle("종목 분석")
        self.move(300, 300)
        self.setFixedSize(400, 400)
        self.show()

QDialog는 pyqt5 에서 빼서는 안될 중요한 기능중 하나인데, 자주 쓰다보니 궁금증이 생겼다. 내가 원하는 의도는, 다이얼로그가 열리면 메인 창은 비활성화 되는것인데, 그걸 어떻게 해야 해결할지 모르겠다.. 예전에 jupyter notebook으로 아이비 만들 때 한번 성공했던것 같은데, 어떻게 했었지?

code243031 commented 4 years ago
self.show() # modalless 형태로 창 활성화
self.exec_() # modal 이 있는 상태로 창 활성화

여기서 Modal이라는 존재가 다른 창의 활성화 / 비활성화를 관리하는 개념이라 show()가 아닌 exec_()를 사용함으로써 해결할 수 있다.