Python PyQt QVBoxLayout在底部添加元素

Python PyQt QVBoxLayout在底部添加元素,python,pyqt4,Python,Pyqt4,我是学习Python/PyQt的初学者。 我试图将QLabel和QLineEdits添加到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

我是学习Python/PyQt的初学者。 我试图将
QLabel
QLineEdit
s添加到
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()
导入系统 导入操作系统 从PyQt4.QtGui导入* 从PyQt4.QtCore导入* app=QApplication(sys.argv) 类m_窗口(QWidget): def _;初始(自身,比例=1): QWidget.\uuuuu初始化(自) self.initUI(比例) def初始界面(自身、比例): #初始化窗口大小 win_width=app.desktop().screenGeometry().width()*缩放 win_height=app.desktop().screenGeometry().height()*比例 #初始化小部件 项目名称=QLabel('project name',self) 项目名称inp=QLineEdit(自) 框架=['Skeleton CSS'、'Bootstrap'、'UIKit'、'Foundation'、'JQuery'] 框架_cmbx=QCOMBOX(自身) 框架\u cmbx.附加项(框架) #将项目添加到布局中 vbox=QVBoxLayout() vbox.addStretch() vbox.addWidget(项目名称) vbox.addWidget(项目名称输入) vbox.addWidget(框架_cmbx) #自我设置 self.setLayout(vbox) self.setWindowTitle('网站模板生成器') self.setMinimumSize(QSize(win_宽度、win_高度)) def运行(自): self.show() sys.exit(app.exec_()) m_窗口(.5).run() 图片:

移动线路

vbox.addStretch()
添加小部件后,要执行以下操作:

vbox = QVBoxLayout()
vbox.addWidget(project_name_lbl)
vbox.addWidget(project_name_inp)
vbox.addWidget(framework_cmbx)
vbox.addStretch()
这将使布局向上而不是向下推动小部件