2011-11-01 3 views
3

에 너무 여기, 여기 수행 할 작업을 설명하기 어렵다 내가 원하는 무엇 :팝업은 비 모달, 인라인 대화 상자 PyQt는

- 클릭 대화를 "팝업"하는 버튼을 누릅니다.

- 그러나이 대화 상자는 넌 모달이어야합니다.

- 내가 부모 앱과 '잠겨'있는 것처럼 보이기 때문에 내가 옮긴다면 그 앱도 함께 올 것입니다.

인라인 팝업을 설명하려고하는 것처럼 보이지만 그게 문제인지 또는이 문제에 접근해야하는지에 대해서는 확실하지 않습니다. 그래서, PyQt 전문가, 어떻게 이런 식으로 만들겠습니까? 미리 감사드립니다.

+1

대화 상자 여야합니까? 메인 창에 단추로 표시하거나 숨길 수있는 위젯을 가질 수 있습니다. 어떤 GUI에서는 "더 많은 것을 보여주십시오"와 같은 정렬입니다. – Avaris

+0

그게 약간의 명예를 가져다 줄지 모르지만, 결국 내가 원하는대로 할 수 있을지도 모른다고 생각합니다. – Cryptite

+0

@ ekhumoro의 대답은 "잠긴"양상을 제외하고 모두 다룹니다. 나는 그런 일이 결코 실행 된 것을 보지 못했지만, 원한다면, 아이의 이동 이벤트에 푹 빠져서 부모를 움직일 수 있다고 생각합니다. 이상하지만. 이미 본 적이있는 일반적인 앱이 있습니까? –

답변

3

모덜리스 대화 상자를 얻으려면 exec_()이 아닌 show()으로여십시오.

대화 상자가 "부모 응용 프로그램과 잠겨"있는지 확인하려면 대화 상자의 생성자에서 부모 창을 설정하십시오.

from PyQt4 import QtGui 

class Window(QtGui.QWidget): 
    def __init__(self): 
     QtGui.QWidget.__init__(self) 
     button = QtGui.QPushButton('Open Dialog', self) 
     button.clicked.connect(self.handleOpenDialog) 
     self.resize(300, 200) 
     self._dialog = None 

    def handleOpenDialog(self): 
     if self._dialog is None: 
      self._dialog = QtGui.QDialog(self) 
      self._dialog.resize(200, 100) 
     self._dialog.show() 

if __name__ == '__main__': 

    import sys 
    app = QtGui.QApplication(sys.argv) 
    win = Window() 
    win.show() 
    sys.exit(app.exec_())