猿问

如何调整pyqt5中垂直框布局中添加的小部件的几何形状

我创建了一个pyqt5具有vertical布局的窗口。在这个垂直布局中,我添加了 2 个按钮。默认情况下,它们垂直对齐,如下所示:

如何调整按钮的几何形状以在上方移动。预期输出如下:

https://img4.mukewang.com/64d20d5100012c3701980467.jpg

这样,如果我添加第三个按钮,它就会位于按钮 2 的下方。以下是代码:


import sys

from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget, QPushButton



class MainWindow(QMainWindow):


    def __init__(self, *args, **kwargs):

        super(MainWindow, self).__init__(*args, **kwargs)


        layout = QVBoxLayout()

        widget = QWidget()

        widget.setLayout(layout)

        self.setCentralWidget(widget)


        button1 = QPushButton('Button 1', self)

        layout.addWidget(button1)


        button2 = QPushButton('Button 2', self)

        layout.addWidget(button2)



app = QApplication(sys.argv)

main_window = MainWindow()

main_window.show()

sys.exit(app.exec_())


GCT1015
浏览 128回答 1
1回答

沧海一幻觉

您需要设置布局的对齐方式并在添加的小部件之间添加一些间距,如下所示:import sysfrom PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget, QPushButtonfrom PyQt5 import QtCoreclass MainWindow(QMainWindow):    def __init__(self, *args, **kwargs):        super(MainWindow, self).__init__(*args, **kwargs)        layout = QVBoxLayout()        #set spacing between your widgets        layout.setSpacing(5)        #set alignment in your vertical layout        layout.setAlignment(QtCore.Qt.AlignTop)        widget = QWidget()        widget.setLayout(layout)        self.setCentralWidget(widget)        button1 = QPushButton('Button 1', self)        layout.addWidget(button1)        button2 = QPushButton('Button 2', self)        layout.addWidget(button2)app = QApplication(sys.argv)main_window = MainWindow()main_window.show()sys.exit(app.exec_())
随时随地看视频慕课网APP

相关分类

Python
我要回答