2016-08-24 53 views
0

這可能是一個非常愚蠢的問題,但無論如何,我被它打到:-(PyQt的:QLineEdit的附有標籤

我有兩個並排側列表窗口,並用一個行編輯控件。標籤下面他們(見附件圖片)我想是剛纔對應的標籤後不低於第二個列表放置的行編輯字段

enter image description here

這裏是我的測試代碼:。

import sys 
from PyQt4 import Qt, QtCore, QtGui 

class MainWindow(QtGui.QWidget): 
    def __init__(self): 
     QtGui.QWidget.__init__(self) 

     centralLayout = QtGui.QGridLayout() 
     centralLayout.setSpacing(2) 
     treelist1 = QtGui.QTreeWidget() 
     treelist2 = QtGui.QTreeWidget() 
     treelist1.setColumnCount(1) 
     treelist1.setHeaderLabels(["List 1"]) 
     treelist2.setColumnCount(1) 
     treelist2.setHeaderLabels(["List 2"]) 
     label = QtGui.QLabel("Line:") 
     linedit = QtGui.QLineEdit() 
     centralLayout.setRowStretch(0, 8) 
     centralLayout.setRowStretch(1, 1) 
     centralLayout.addWidget(treelist1, 0, 0) 
     centralLayout.addWidget(treelist2, 0, 1) 
     centralLayout.addWidget(label, 1, 0) 
     centralLayout.addWidget(linedit, 1, 1) 
     self.setLayout(centralLayout) 
     self.show() 

if __name__ == '__main__': 
    app = QtGui.QApplication(sys.argv) 
    mw = MainWindow() 
    sys.exit(app.exec_()) 

預先感謝您提供的任何幫助!

回答

1

你所需要的就是:

  • 設置在一個垂直佈局,而不是網格佈局
  • 在這種垂直佈局的窗口小部件時,添加兩個水平佈局
  • 添加兩棵小部件到第一水平佈局
  • 您的標籤和lineedit添加到第二水平佈局
+0

謝謝,ypnos!它工作得很好! – maurobio

1

下面是答案ŧ啊,我的問題,由ypnos基礎上,建議:

import sys 
from PyQt4 import Qt, QtCore, QtGui 

class MainWindow(QtGui.QWidget): 
    def __init__(self): 
     QtGui.QWidget.__init__(self) 

     verticalLayout = QtGui.QVBoxLayout() 
     verticalLayout.setSpacing(2) 
     horizontalLayout1 = QtGui.QHBoxLayout() 
     horizontalLayout2 = QtGui.QHBoxLayout() 
     treelist1 = QtGui.QTreeWidget() 
     treelist2 = QtGui.QTreeWidget() 
     treelist1.setColumnCount(1) 
     treelist1.setHeaderLabels(["List 1"]) 
     treelist2.setColumnCount(1) 
     treelist2.setHeaderLabels(["List 2"]) 
     label = QtGui.QLabel("Line:") 
     linedit = QtGui.QLineEdit() 
     horizontalLayout1.addWidget(treelist1) 
     horizontalLayout1.addWidget(treelist2) 
     horizontalLayout2.addWidget(label) 
     horizontalLayout2.addWidget(linedit) 
     verticalLayout.addLayout(horizontalLayout1) 
     verticalLayout.addLayout(horizontalLayout2) 
     self.setLayout(verticalLayout) 
     self.show() 

if __name__ == '__main__': 
    app = QtGui.QApplication(sys.argv) 
    mw = MainWindow() 
    sys.exit(app.exec_()) 

enter image description here