1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
|
#!/usr/bin/env python
"""PyQt4 port of the layouts/basiclayout example from Qt v4.x"""
from PyQt4 import QtCore, QtGui
class Dialog(QtGui.QDialog):
NumGridRows = 3
NumButtons = 4
def __init__(self):
super(Dialog, self).__init__()
self.createMenu()
self.createHorizontalGroupBox()
self.createGridGroupBox()
self.createFormGroupBox()
bigEditor = QtGui.QTextEdit()
bigEditor.setPlainText("This widget takes up all the remaining space "
"in the top-level layout.")
buttonBox = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Cancel)
buttonBox.accepted.connect(self.accept)
buttonBox.rejected.connect(self.reject)
mainLayout = QtGui.QVBoxLayout()
mainLayout.setMenuBar(self.menuBar)
mainLayout.addWidget(self.horizontalGroupBox)
mainLayout.addWidget(self.gridGroupBox)
mainLayout.addWidget(self.formGroupBox)
mainLayout.addWidget(bigEditor)
mainLayout.addWidget(buttonBox)
self.setLayout(mainLayout)
self.setWindowTitle("Basic Layouts")
def createMenu(self):
self.menuBar = QtGui.QMenuBar()
self.fileMenu = QtGui.QMenu("&File", self)
self.exitAction = self.fileMenu.addAction("E&xit")
self.menuBar.addMenu(self.fileMenu)
self.exitAction.triggered.connect(self.accept)
def createHorizontalGroupBox(self):
self.horizontalGroupBox = QtGui.QGroupBox("Horizontal layout")
layout = QtGui.QHBoxLayout()
for i in range(Dialog.NumButtons):
button = QtGui.QPushButton("Button %d" % (i + 1))
layout.addWidget(button)
self.horizontalGroupBox.setLayout(layout)
def createGridGroupBox(self):
self.gridGroupBox = QtGui.QGroupBox("Grid layout")
layout = QtGui.QGridLayout()
for i in range(Dialog.NumGridRows):
label = QtGui.QLabel("Line %d:" % (i + 1))
lineEdit = QtGui.QLineEdit()
layout.addWidget(label, i + 1, 0)
layout.addWidget(lineEdit, i + 1, 1)
self.smallEditor = QtGui.QTextEdit()
self.smallEditor.setPlainText("This widget takes up about two thirds "
"of the grid layout.")
layout.addWidget(self.smallEditor, 0, 2, 4, 1)
layout.setColumnStretch(1, 10)
layout.setColumnStretch(2, 20)
self.gridGroupBox.setLayout(layout)
def createFormGroupBox(self):
self.formGroupBox = QtGui.QGroupBox("Form layout")
layout = QtGui.QFormLayout()
layout.addRow(QtGui.QLabel("Line 1:"), QtGui.QLineEdit())
layout.addRow(QtGui.QLabel("Line 2, long text:"), QtGui.QComboBox())
layout.addRow(QtGui.QLabel("Line 3:"), QtGui.QSpinBox())
self.formGroupBox.setLayout(layout)
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
dialog = Dialog()
sys.exit(dialog.exec_())
|