动态调整Pyside GUI中的按钮大小并管理布局

时间:2017-01-16 21:10:48

标签: python qt python-3.x pyqt pyside

我已经阅读了有关以下事项的文档,但是QtGui非常复杂,我可能错过了这篇文章。

我创建了一个GUI,其中包含一个菜单栏两个QLabel和两个QLineEdit以及一个按钮。我在我的代码中遇到的问题是按钮被放置在绝对坐标位置,并且不会根据窗口大小调整动态调整大小,并且QLineEdit框显示为与QLabel有一定的水平移位。但我想把它放在QLabel旁边。我附上了我正在获取的图片。这是我的代码

import sys
from PySide.QtGui import *
from PySide.QtCore import *

class guiwindow(QMainWindow):

    def __init__(self):
        super(guiwindow,self).__init__()

        self.central = QWidget()
        self.setCentralWidget(self.central)

        self.setGeometry(400, 100, 1200, 800)
        self.setWindowTitle(" Automatic Selector")            

        self.menubar()
        self.makebuttons()
        self.angles()

    def menubar(self):
        textEdit = QWidget()
        self.setCentralWidget(textEdit)

        exitAction = QAction('Exit', self)
        exitAction.setShortcut('Ctrl+Q')
        exitAction.setStatusTip('Exit application')
        exitAction.triggered.connect(self.close)
        self.statusBar()

        menubar = self.menuBar()
        fileMenu = menubar.addMenu('&File')
        fileMenu.addAction(exitAction)

    def makebuttons(self):
        # self.central_widget = QWidget()
        # self.setCentralWidget(self.central_widget)

        button = QPushButton("Test", self)
        hbox = QHBoxLayout()
        hbox.addStretch(1)
        hbox.addWidget(button)
        # self.central_widget.setLayout(hbox)
        self.show()

    def angles(self):

        self.window = QWidget()
        self.setCentralWidget(self.window)

        self.Rotation = QLabel('Rotation:')
        self.Tilt = QLabel('Tilt:')

        self.RotationEdit = QLineEdit()
        self.RotationEdit.setFixedWidth(55)
        self.TiltEdit = QLineEdit()
        self.TiltEdit.setFixedWidth(55)

        self.grid = QGridLayout()
        self.grid.addWidget(self.Rotation,1,0,Qt.AlignLeft)
        self.grid.addWidget(self.RotationEdit,1,1,Qt.AlignLeft)
        self.grid.addWidget(self.Tilt,2,0,Qt.AlignLeft)
        self.grid.addWidget(self.TiltEdit, 2,1,Qt.AlignLeft)
        self.window.setLayout(self.grid)

def main():
    app = QApplication(sys.argv)
    ex = guiwindow()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()

如果我拿出

self.window = QWidget()
self.setCentralWidget(self.window)

def angles(self):旋转角度和倾斜角度不会出现在GUI上。为什么这个

enter image description here

0 个答案:

没有答案