Попробуй
import sys
from PyQt5.Qt import *
class Widget(QWidget):
def __init__(self):
super().__init__()
self.midColLayout = QVBoxLayout()
self.graphWidget = QWidget(self) ## self
self.graphWidget.setStyleSheet("background-color: white; padding:0px;")
self.graphWidget.setSizePolicy(QSizePolicy.Ignored, QSizePolicy.Ignored)
self.vLayout = QVBoxLayout()
self.hLayout = QHBoxLayout()
self.gridLayout = QGridLayout()
self.gridLayout.setSpacing(0)
self.hLayout.addLayout(self.gridLayout)
self.vLayout.addLayout(self.hLayout)
self.buttons = []
for x in range(0, 80): # If I put 81, then the program crashes
l = []
for y in range(0, 90): # If I put 91, then the program crashes
self.button = QPushButton()
l.append(self.button)
self.gridLayout.addWidget(self.button, x, y)
self.buttons.append(l)
self.graphWidget.setLayout(self.vLayout)
#? self.midColLayout.addWidget(self.mapLabel)
self.midColLayout.addWidget(self.graphWidget)
if __name__ == '__main__':
myapp = QApplication(sys.argv)
mywin = Widget()
mywin.resize(400, 400)
mywin.show()
sys.exit(myapp.exec_())
Код работает! Заметил, что сетка выходит за окошко. Есть ли быстрое решение для этого?
Попробовать
import sys
from PyQt5.Qt import *
class Widget(QWidget):
def __init__(self):
super().__init__()
self.midColLayout = QVBoxLayout()
self.graphWidget = QWidget(self) ## self
self.graphWidget.setStyleSheet("background-color: white; padding:0px;")
self.graphWidget.setSizePolicy(QSizePolicy.Ignored, QSizePolicy.Ignored)
self.vLayout = QVBoxLayout(self) # +++ self
self.hLayout = QHBoxLayout()
self.gridLayout = QGridLayout()
self.gridLayout.setSpacing(0)
self.hLayout.addLayout(self.gridLayout)
self.vLayout.addLayout(self.hLayout)
self.buttons = []
for x in range(0, 80): # If I put 81, then the program crashes
l = []
for y in range(0, 90): # If I put 91, then the program crashes
self.button = QPushButton()
l.append(self.button)
self.gridLayout.addWidget(self.button, x, y)
self.buttons.append(l)
# self.graphWidget.setLayout(self.vLayout) # ---
#? self.midColLayout.addWidget(self.mapLabel)
self.midColLayout.addWidget(self.graphWidget)
if __name__ == '__main__':
myapp = QApplication(sys.argv)
mywin = Widget()
mywin.resize(400, 400)
mywin.show()
sys.exit(myapp.exec_())