2013-07-11 3 views
0

저는 OSX 10.8에서 파이썬 2.7.5를 사용하고 있습니다. 나는 PySide를 배우고 간단한 GUI를 만들려고 노력하고있다.PySide : GUI에서 버튼의 "동적"위치 지정?

나는 버튼 (! WOAAA)의 경로를 선택하는 데 사용을 사용하거나 기능을 실행하기 위해 관리 : 프로그램이 실행 중일 때

pathBtn = QtGui.QPushButton("FITS file path", self) 
pathBtn.setToolTip('Choose the <b>path</b> to your FITS file') 
pathBtn.clicked.connect(essai) 
pathBtn.resize(pathBtn.sizeHint()) 
pathBtn.move(200, 100) 

내 문제가있다을 나는 마우스 커서가 윈도우의 크기를 변경 , 버튼이 움직이지 않는다, 크기 변화에 적응하지 마라.

나는 어떤 대답 (지옥 예 google)을 찾으려고 노력했다. 그리고 나는 "QVBoxLayout"이 내가 원하는 것을해야한다는 것을 이해한다. (어떤 특정한 종류의 "동적"positionning을 알고있다. 나는 그것의 문법이나 그것을 사용하는 방법을 이해하지 못했습니다 ...

어떤 도움을 주셨습니다!

+1

['QVBoxLayout'] (https://deptinfo-ensip.univ-poitiers.fr/ENS/pyside-docs/PySide/QtGui/QVBoxLayout.html)에 대한 설명서를 읽었습니까? – Bakuriu

+0

도움이 필요하면이 문서를 찾지 못했습니다. 왜 그런지는 ... 어쨌든, 감사합니다! – Geo

답변

1

Qt 위젯에서 레이아웃과 위젯의 크기 힌트는 사물의 크기가 어떻게 변하는지를 결정합니다. 위젯을 레이아웃하는 일반적인 절차 (예를 들어) 다음과 같습니다

dialog = QDialog() 
layout = QVBoxLayout() 
label = QLabel('This is a label') 
edit = QLineEdit('This is a line edit box') 
layout.addWidget(label) 
layout.addWidget(edit) 
dialog.setLayout(layout) 

(* 나는이 "의사 코드를"작업 (NO Qt는/PySide)에서 여기에이 코드를 테스트 해보십시오 수 없습니다 :-)

레이블 및 편집 상자가있는 대화 상자 위젯이 생성됩니다. 대화 상자 위젯의 크기를 조정하면 위젯의 레이아웃과 크기 조정 속성에 따라 레이블과 편집 상자의 크기가 적절하게 조정됩니다. 수평으로 최대로 확장되지만 레이블이 나머지 모든 공간을 차지하는 동안 편집이 동일한 크기를 유지합니다. 이는 편집 상자의 크기 조정 힌트가 높이 (즉 텍스트 한 줄)를 유지하기를 원하기 때문입니다.

레이아웃을 지정하지 않으면 위젯 (버튼, 라벨)은 부모 위젯의 크기를 변경할 때 아무 것도하지 않습니다. 이는 사용자가 관찰하고있는 것입니다. 따라서 솔루션은 실제로 QVBoxLayout이므로 위에서 설명한대로 사용하십시오.

덧붙여서 : 더 복잡한 레이아웃의 경우, Qt에서 제공되는 Designer 도구를 사용하고 싶을 것입니다.이 도구를 사용하면 GUI를 선명하게보고 테스트 할 수 있습니다.

관련 문제