@pornstar98

Как в PyQt5 убрать отступы между элементами в GridLayout?

Пробовал self.grid.setSpacing(0) не помогло
from PyQt5 import (QtWidgets, QtCore, QtGui)
from PyQt5.QtGui import QIcon
import sys, time


class myWindow(QtWidgets.QWidget):
    def __init__(self, parent = None):
        QtWidgets.QWidget.__init__(self, parent)
        self.grid = QtWidgets.QGridLayout()
        self.button_1 = QtWidgets.QPushButton("1")
        self.button_2 = QtWidgets.QPushButton("2")
        self.label = QtWidgets.QLabel("1")
        self.label1 = QtWidgets.QLabel("2")
        self.grid.setSpacing(0)
        self.grid.addWidget(self.button_1, 0, 0)
        self.grid.addWidget(self.label, 0, 1)
        self.grid.addWidget(self.button_2, 1, 0)
        self.grid.addWidget(self.label1, 1, 1)
        self.setLayout(self.grid)



if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    window = myWindow()
    window.setWindowTitle("test")
    window.resize(300, 300)
    window.show()
    sys.exit(app.exec_())
  • Вопрос задан
  • 1774 просмотра
Решения вопроса 1
obezh
@obezh
Python разработчик
from PyQt5 import (QtWidgets, QtCore, QtGui)
from PyQt5.QtGui import QIcon
import sys, time


class myWindow(QtWidgets.QWidget):
    def __init__(self, parent = None):
        QtWidgets.QWidget.__init__(self, parent)

        self.grid = QtWidgets.QGridLayout()

        # 1
        self.grid.setVerticalSpacing(0)
        self.grid.setContentsMargins(0, 0, 0, 0)

        self.button_1 = QtWidgets.QPushButton("1")
        self.button_2 = QtWidgets.QPushButton("2")

        # 2
        sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Minimum)
        sizePolicy.setHeightForWidth(self.button_1.sizePolicy().hasHeightForWidth())
        self.button_1.setSizePolicy(sizePolicy)
        sizePolicy.setHeightForWidth(self.button_2.sizePolicy().hasHeightForWidth())
        self.button_2.setSizePolicy(sizePolicy)

        self.label = QtWidgets.QLabel("1")
        self.label1 = QtWidgets.QLabel("2")
        self.grid.setSpacing(0)
        self.grid.addWidget(self.button_1, 0, 0)
        self.grid.addWidget(self.label, 0, 1)
        self.grid.addWidget(self.button_2, 1, 0)
        self.grid.addWidget(self.label1, 1, 1)
        self.setLayout(self.grid)



if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    window = myWindow()
    window.setWindowTitle("test")
    window.resize(300, 300)
    window.show()
    sys.exit(app.exec_())

Остальное регулировать размером самого гридлайоута посредством
self.grid.setGeometry(QtCore.QRect(80, 50, 110, 60))
в # 1, а сам грид запихивать в виджет, который уже и будет нужным размером окна (300, 300 в данном случае)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
28 мар. 2024, в 21:17
5000 руб./за проект
28 мар. 2024, в 20:46
150000 руб./за проект
28 мар. 2024, в 20:37
50000 руб./за проект