Я пытаюсь создать макет, в котором существует строка, и эта строка должна содержать кнопку с абсолютным позиционированием, которая должна располагаться за пределами этой строки.
Вот простая схема
Я сделал это, просто нажав дочернюю кнопку на родительскую кнопку (я не уверен, что это правильное решение), и переместил ее в некоторые абсолютные координаты.
Это работает, но, к сожалению, дочерняя кнопка обрезается родителем. Так что это похоже на overflow: hidden
в CSS. Но в случае QT я не мог найти, как отключить это поведение.
Вот демонстрация моего текущего QUI
Существует ли какой-нибудь способ решить это? Или я должен просто использовать некоторую комбинацию виджетов с пустой прокладкой и т. Д .?
btn = QPushButton("button")
test = QPushButton("X")
test.setParent(btn)
test.move(200, 5)
self.layout.addWidget(btn)
Полный код класса пользовательского интерфейса (минимальный воспроизводимый пример)
class MainWindow(QWidget):
def __init__(self):
super(MainWindow, self).__init__()
self.layout = QVBoxLayout()
btn = QPushButton("button")
test = QPushButton("X")
test.setParent(btn)
test.move(200, 5)
self.layout.addWidget(btn)
self.setLayout(self.layout)
self.layout.setContentsMargins(0,0,0,74)
self.layout.setSpacing(0)
# self.layout.addStretch(-1)
self.setMinimumSize(640,400)
self.setWindowFlags(Qt.FramelessWindowHint)