Я написал небольшой пример со Snake.
Я создал QMainWindow
с centralWidget
, который имеет gridlayout
.
Кажется, я не могу правильно определить расстояние. Я думал, что смогу сделать это с setContentMargins()
, поэтому я поместил его везде, где только смогу, но место все еще осталось. Я, наверное, что-то наблюдаю. Я думаю, что это связано с моей сеткой. Но я не вижу проблемы. Мысли?
Вот изображение:
https://imgur.com/tHbf6tV
Вот мой код:
import sys
from PyQt5 import QtWidgets as qw
from PyQt5 import QtGui as qg
from PyQt5 import QtCore as qc
class Snake(qw.QMainWindow):
def __init__(self, parent=None):
super(Snake, self).__init__(parent)
self.setContentsMargins(0,0,0,0)
self.test()
self.show()
def test(self):
self.centralwidget = qw.QWidget()
self.setCentralWidget(self.centralwidget)
self.centralwidget.setStyleSheet("background-color: green")
self.gridLayout = qw.QGridLayout()
self.gridLayout.setSpacing(0)
# self.gridLayout.setContentsMargins(0, 0, 0, 0)
self.vLayout = qw.QVBoxLayout(self.centralwidget)
self.hLayout = qw.QHBoxLayout()
self.hLayout.setContentsMargins(0, 0, 0, 0)
self.vLayout.setContentsMargins(0, 0, 0, 0)
# center the grid with stretch on both sides
self.hLayout.addLayout(self.gridLayout)
self.hLayout.addStretch(0)
self.vLayout.addLayout(self.hLayout)
# push grid to the top of the window
self.vLayout.addStretch(0)
self.buttons = []
for i in range(24):
l = []
for j in range(24):
b = qw.QPushButton()
b.setFixedSize(20, 20)
b.setStyleSheet("background-color: black")
l.append(b)
self.gridLayout.addWidget(b, i, j)
self.gridLayout.setColumnMinimumWidth(j, 20)
self.buttons.append(l)
self.gridLayout.setRowMinimumHeight(i, 16)
self.buttons[5][5].setStyleSheet("background-color: green")
self.buttons[4][5].setStyleSheet("background-color: green")
self.buttons[3][5].setStyleSheet("background-color: green")
if __name__ == '__main__':
app = qw.QApplication(sys.argv)
Menu = Snake()
sys.exit(app.exec_())