2014-01-10 2 views
1

QtDesigner에서 가로 레이아웃 (layoutSpacing이 5) 인 QFrame을 만들었습니다. 3 개의 QLineEdit 위젯이 있습니다. 크기가 고정 된 수평 스페이서와 프레임 크기가 변경된 경우에만업데이트 새로 고침 레이아웃

lineedit의 초기 크기는 100x30입니다. 나는 lineEdit 위젯의 크기를 변경해야 내가 할 그 코드에서이 같은 :

크기가 변경 되나 자신의 X 위치는 아닙니다 그래서 처음 두 (65) 사이에 큰 공간을 얻고, lineEdit2은 다음과 같습니다
self.__ui.lineEdit1.resize(40, 30) 
self.__ui.lineEdit2.resize(140, 30) 
self.__ui.lineEdit3.resize(80, 30) 

lineEdit3.

어떻게 레이아웃이나 프레임을 업데이트해야합니까? 나는 layout.setSpacing (5) 앞뒤에 언급 한 코드를 시도했지만 lineEdit의 크기는 변경되지 않았습니다 (초기 100입니다).

EDIT 여기가 스크린 샷입니다.) 코르 반은 요청에 따라 : enter image description here

+0

'resize'가 호출되기 전후에 스크린 샷을 게시 할 수 있습니까? – qurban

+0

@qurban 제 질문에 편집 해주세요 – Aleksandar

+1

ekhumoro가 답변에서 제안한대로 위젯의 크기를 조정할 때마다'resize()'대신'setFixedSize()'를 사용하십시오. 이 솔루션은 귀하의 요구 사항을 충족시킵니다. – qurban

답변

1

setFixedSize 방법을 사용

self.__ui.lineEdit1.setFixedSize(40, 30) 
    self.__ui.lineEdit2.setFixedSize(140, 30) 
    self.__ui.lineEdit3.setFixedSize(80, 30) 

당신은 또한 수평 레이아웃의 layoutStretch 속성을 사용하여 고려할 수 있습니다. 이렇게하면 각 줄 편집에 허용되는 공간의 비율을 설정할 수 있습니다. 따라서 "1, 4, 2"로 설정하면 두 번째 줄 편집은 첫 번째 줄의 4 배가되고 세 번째 줄 편집은 두 번 줄 것입니다. 이것에 대한 좋은 점은 메인 윈도우의 크기가 변경 될 때 자동으로 크기가 조정된다는 것입니다.

+0

그게 다예요, 고마워요. – Aleksandar

관련 문제