2016-09-29 4 views
-1

위젯 2 개를 포함하는 하위 컨테이너 레이아웃을 만들고 싶습니다. 위젯 2 개는 서로 옆에 배치해야하지만 현재 설정에는 여전히 간격이 있습니다.gridLayout (QT) 안의 간격을 제거하는 방법은 무엇입니까?

이미 간격을 0 setSpacing(0)으로 설정했습니다. setContentsMargins(0,0,0,0)이 도움이되지 않습니다.

PyQt5를 사용하고 있지만 C++ 코드를 변환 할 때 문제가되지 않아야합니다.

당신이 그림에서 볼 수 있듯이 여전히 작은 간격이 :

(왼쪽 : LineEdit - 오른쪽 : 푸시 버튼)에 QT 설명서를 말한다

import PyQt5.QtCore as qc 
import PyQt5.QtGui as qg 
import PyQt5.QtWidgets as qw 

import sys 

class Window(qw.QWidget): 
    def __init__(self): 
     qw.QWidget.__init__(self) 

     self.initUI() 

    def initUI(self): 
     gridLayout = qw.QGridLayout() 

     height = 20 

     self.label1 = qw.QLabel("Input:") 
     self.label1.setFixedHeight(height) 
     gridLayout.addWidget(self.label1, 0, 0) 

     # Child Container 
     childGridLayout = qw.QGridLayout() 
     childGridLayout.setContentsMargins(0,0,0,0) 
     childGridLayout.setHorizontalSpacing(0) 

     self.lineEdit1 = qw.QLineEdit() 
     self.lineEdit1.setFixedSize(25, height) 
     childGridLayout.addWidget(self.lineEdit1, 0, 0) 

     self.pushButton1 = qw.QPushButton("T") 
     self.pushButton1.setFixedSize(20, height) 
     childGridLayout.addWidget(self.pushButton1, 0, 1) 
     # ----------------- 
     gridLayout.addItem(childGridLayout, 0,1) 

     self.setLayout(gridLayout) 


if __name__ == '__main__': 

    app = qw.QApplication(sys.argv) 
    window = Window() 
    window.show() 
    sys.exit(app.exec_()) 
+0

당신은 당신의 코드를 게시하고 최소한의 검증 예를 제공한다 : http://stackoverflow.com/help/mcve를 –

+0

좋아 덕분에, 나는 예제 코드를 추가했습니다. – Sens4

답변

0

: 기본적으로 을, QLayout은 스타일에 제공된 값을 사용합니다. 대부분의 플랫폼에서 여백은 모든 방향으로 11 픽셀입니다.

참조 : http://doc.qt.io/qt-4.8/qlayout.html#setContentsMargins

그래서 당신은 수평 공간 "setVerticalSpacing (INT 간격)"에 대한 수직은 "setHorizontalSpacing (INT 간격)"를 사용해야 할 수도 있습니다.

설명서에 따르면이 경우 공간이 삭제 될 수 있습니다. 참조 : http://doc.qt.io/qt-4.8/qgridlayout.html#horizontalSpacing-prop 해결되지 않을 경우

(레이아웃을 얻는 곳에서) 공간 스타일의 설정을 재정의 할 수있는 옵션이는 .... 난 당신이 사용자 정의 레이아웃 간격을 제공하려면이

지루한 생각 QStyle 하위 클래스에서 하위 클래스에 layoutSpacingImplementation()이라는 슬롯을 구현합니다.

더 detials : http://doc.qt.io/qt-4.8/qstyle.html#layoutSpacingImplementation

관련 문제