【问题标题】:How do I modify spacing in nested PyQt layouts?如何修改嵌套 PyQt 布局中的间距?
【发布时间】:2023-03-14 11:07:01
【问题描述】:

目前,我在 QHBoxLayout 的第一列中有一个嵌套的 QVBoxLayout,但无论我对 .setContentMargins.setSpacing 进行更改,第一列都没有任何变化。

import sys
import io
from PyQt5.QtWidgets import *
from PyQt5.QtWebEngineWidgets import QWebEngineView

class MyApp(QWidget):
    def __init__(self):
        super().__init__()
        # Main widget/window
        self.setWindowTitle('Test')
        self.window_width, self.window_height = 1600, 900
        self.setMinimumSize(self.window_width, self.window_height)

        layout = QHBoxLayout()
        self.setLayout(layout)

        leftside = QWidget()
        leftlayout = QVBoxLayout()

        # Creating textbox and adding to leftside GUI
        lineEdit = QLineEdit()
        leftlayout.addWidget(lineEdit)
        leftlayout.addWidget(QPushButton('Placeholder'))
        leftside.setLayout(leftlayout)

        # Adding both widgets to main layout
        testWidget = QWidget()
        testWidget.setStyleSheet("background-color: blue")
        layout.addWidget(leftside, 2)
        layout.addWidget(testWidget, 8)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setStyleSheet('''
        QWidget {
            font-size: 20px;
        }
    ''')

    myApp = MyApp()
    myApp.show()

    try:
        sys.exit(app.exec_())
    except SystemExit:
        print('Closing Window...')

给我这个结果:

我想要的:

【问题讨论】:

    标签: python pyqt pyqt5


    【解决方案1】:

    使用addStretch()方法:

    class MyApp(QWidget):
        def __init__(self, parent=None):
            super().__init__(parent)
            self.setWindowTitle("Test")
            self.window_width, self.window_height = 1600, 900
            self.setMinimumSize(self.window_width, self.window_height)
    
            leftside = QWidget()
            leftlayout = QVBoxLayout(leftside)
            lineEdit = QLineEdit()
            leftlayout.addWidget(lineEdit)
            leftlayout.addWidget(QPushButton("Placeholder"))
            leftlayout.addStretch()
    
            testWidget = QWidget()
            testWidget.setStyleSheet("background-color: blue")
    
            layout = QHBoxLayout(self)
            layout.addWidget(leftside)
            layout.addWidget(testWidget, stretch=1)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-16
      • 2013-05-12
      • 1970-01-01
      • 1970-01-01
      • 2016-09-30
      • 2018-03-03
      • 2018-12-29
      • 1970-01-01
      相关资源
      最近更新 更多