PyQt QVBoxLayout在底部添加元素

时间:2016-05-19 22:20:33

标签: python pyqt4

我是初学者学习Python / PyQt。 我尝试将QLabelQLineEdit添加到QVBoxLayout但是所有小部件都添加到屏幕底部。

我尝试使用vbox.setAlignment(Qt.AlignTop),但这似乎也无效。

任何指针都表示赞赏!

main.py

import sys
import os
from PyQt4.QtGui import *
from PyQt4.QtCore import *

app = QApplication(sys.argv)

class m_Window(QWidget):

    def __init__(self, scale = 1):
        QWidget.__init__(self)
        self.initUI(scale)

    def initUI(self, scale):
        #initialize window sizes
        win_width = app.desktop().screenGeometry().width() * scale
        win_height = app.desktop().screenGeometry().height() * scale
        #init widgets
        project_name_lbl = QLabel('<b>Project Name</b>', self)
        project_name_inp = QLineEdit(self)
        frameworks = ['Skeleton CSS','Bootstrap','UIKit','Foundation','JQuery']
        framework_cmbx = QComboBox(self)
        framework_cmbx.addItems(frameworks)
        #add items to layout
        vbox = QVBoxLayout()
        vbox.addStretch()
        vbox.addWidget(project_name_lbl)
        vbox.addWidget(project_name_inp)
        vbox.addWidget(framework_cmbx)
        #self settings
        self.setLayout(vbox)
        self.setWindowTitle('Website Template Maker')
        self.setMinimumSize(QSize(win_width, win_height))

    def run(self):
        self.show()
        sys.exit(app.exec_())

m_Window(.5).run()

PIC:

<code>QVBoxLayout()</code> adding widgets to the bottom

1 个答案:

答案 0 :(得分:3)

移动线

vbox.addStretch()

在您添加小部件之后:

vbox = QVBoxLayout()
vbox.addWidget(project_name_lbl)
vbox.addWidget(project_name_inp)
vbox.addWidget(framework_cmbx)
vbox.addStretch()

这将使布局推动您的小部件而不是向下。