Я пытаюсь создать оверлей на виджете. После добавления наложения он занимает все пространство в виджете. Как я могу сделать наложение, чтобы взять его оригинальный размер? Исходный размер означает, что когда я запускаю оверлей как отдельный скрипт, он имеет небольшой размер.
class Legends(QWidget):
def __init__(self):
super().__init__()
self.layout = QGridLayout()
self.setLayout(self.layout)
def addLegend(self,colorbagNames):
print("yes",colorbagNames)
for i in range(self.layout.rowCount()):
for x in range(self.layout.columnCount()):
item = self.layout.itemAtPosition(i, x)
if item is not None:
widget = item.widget()
self.layout.removeWidget(widget)
widget.setParent(None)
x= 0
for color, bagName in colorbagNames.items():
labelColor = QLabel()
labelColor.setStyleSheet("QLabel { background-color : red }")
self.layout.addWidget(labelColor, x, 0)
labelText = QLabel()
labelText.setMargin(0)
labelText.setText(bagName)
labelText.setStyleSheet("QLabel { background-color : grey }")
self.layout.addWidget(labelText, x, 1)
x = x+1
class test(QWidget):
def __init__(self):
super().__init__()
self.lay= QVBoxLayout()
self.lay.setSpacing(0)
self.btn = QPushButton("yes")
self.lay.addWidget(QPushButton("yes"))
self.lay.addLayout(QHBoxLayout())
self.setLayout(self.lay)
self.legend = Legends()
self.legend.setParent(self)
self.legend.addLegend({'red': 'asdf'})
self.legend.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
window = test()
window.show()
status = app.exec_()
sys.exit(status)