私は私の窓のために、このレイアウトをしたい:だから、私は3つのボタンを配置するQHBoxLayout
レイアウトを作成し、QVBoxLayout
に追加しようとしたpyqt4でレイアウトQHBoxLayoutとQVBoxLayoutを整列する方法は?
:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
title = QtGui.QLabel('Title')
author = QtGui.QLabel('Author')
other = QtGui.QLabel('Other')
titleEdit = QtGui.QLineEdit()
horizontalLayout = QtGui.QHBoxLayout(self)
horizontalLayout.addWidget(title)
horizontalLayout.addWidget(author)
horizontalLayout.addWidget(other)
verticalLayout = QtGui.QVBoxLayout(self)
verticalLayout.addWidget(titleEdit)
verticalLayout.addWidget(horizontalLayout)
self.setLayout(verticalLayout)
self.setGeometry(300, 300, 350, 300)
self.setWindowTitle('Review')
self.show()
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
しかし、別のレイアウトを受け入れていません:
verticalLayout.addWidget(horizontalLayout)
TypeError: addWidget(self, QWidget, stretch: int = 0, alignment: Qt.Alignment = 0): argument 1 has unexpected type 'QHBoxLayout'
これを行う方法は? addLayout()
を使用してG.M.コメント@ことで
更新
は、私は、コンソール上でこの警告だ:
QLayout: Attempting to add QLayout "" to Example "", which already has a layout
QLayout::addChildLayout: layout "" already has a parent
QWidget::setLayout: Attempting to set QLayout "" on Example "", which already has a layout
をしかし、今のウィンドウが編集ボックスなしで表示されていました:
あなたは 'QVBoxLayout :: addWidget'に' QLayout'を渡すことはできません。代わりに 'QVBoxLayout :: addLayout'を使用してください。 –
@Thanksだが、今は '' QLayoutを設定しようとしている ""という警告を出している。 – user
私は間違った行を変更したと思います。 'verticalLayout.addWidget(horizontalLayout)'を 'verticalLayout.addLayout(horizontalLayout)'に変更する必要があります。 –