2015-02-25 4 views
0

Я новичок в PyQt5. Я пытаюсь создать сетку клеток с помощью кнопки в нижней части:PyQt5: проблема с интервалом в gridlayout

g = QGridLayout(window)  
for i in range(N): 
    for j in range(N): 
     b = QPushButton() 
     g.addWidget(b, i, j, 1, 1) 
g.addWidget(QPushButton("Last move"), N+4, N//2) 

И это то, что я получаю:

screenshot

Как вы видите, кнопка портит все. Как я могу избавиться от пространства между ячейками?

ответ

1

Вам нужно объединить ячейки вместе в нижнем ряду, так что кнопка не получить столбец своих собственных:

button = QPushButton("Last move") 
    g.addWidget(button, N, 0, 1, N, QtCore.Qt.AlignCenter) 

Третий и четвертый аргументы набора строки и столбца пядь ячейки , Если вы хотите, чтобы кнопка растягивала всю ширину, опустите последний аргумент.

+0

спасибо! который решает мою проблему, но я не понимаю, как кнопка влияет на ячейки. – theluckyemil

+0

@theluckyemil. В исходном примере создается сетка 6x5 с добавлением кнопки в средний столбец. Эта колонка должна растянуться, чтобы взять кнопку, которая создает все это пустое пространство с правой стороны. Слияние столбцов нижней строки означает, что кнопка не добавляется к среднему столбцу блока ячеек выше. Вместо этого он получает отдельную область grid-layout для себя. – ekhumoro

Смежные вопросы