У меня есть пользовательский QWidget
с QHBoxLayout()
в качестве макета и два других виджета, установленных в указанном макете. И все это находится внутри другого QWidget
, который установлен как центральный виджет для моего QMainWindow
. Я хочу установить цвет фона для CustomWidget
, но по какой-то причине между двумя его виджетами всегда есть промежуток. Кроме того, похоже, это происходит только с пользовательскими виджетами; изображение 1 — как это выглядит при использовании QWidget
, изображение 2, как это выглядит с CustomWidget
. Как я могу заставить его выглядеть как изображение 1 даже с CustomWidget
?
import sys
from PyQt5 import QtWidgets as qtw
from PyQt5 import QtGui as qtg
from PyQt5 import QtCore as qtc
class MainWindow(qtw.QMainWindow):
def __init__(self):
super().__init__()
self.setStyleSheet('background: green;')
self.mainwidget = qtw.QWidget()
self.mainwidget.setLayout(qtw.QVBoxLayout())
self.label1 = qtw.QLabel(pixmap=qtg.QPixmap('image.png'))
self.label2 = qtw.QLabel('texttexttexttexttexttexttexttexttexttexttexttexttexttexttexttexttexttexttexttexttexttexttexttext')
text = qtw.QScrollArea()
text.setWidget(self.label2)
self.widget = CustomWidget()
self.widget.setLayout(qtw.QHBoxLayout())
self.widget.layout().addWidget(self.label1)
self.widget.layout().addWidget(text)
self.widget.setStyleSheet('background: red')
self.mainwidget.layout().addWidget(self.widget)
self.setCentralWidget(self.mainwidget)
self.show()
class CustomWidget(qtw.QWidget):
def __init__(self):
super().__init__()
if __name__ == '__main__':
app = qtw.QApplication(sys.argv)
mw = MainWindow()
sys.exit(app.exec_())