У нас есть приложение, которое содержит пользовательский QLayout. Идея макета заключается в том, что мы хотим разместить дочерние элементы макета частично вне фрейма макета, тем самым обрезая отображение дочернего элемента.
В PyQt 5.10 это работало отлично. Например, мы могли бы:
child.setGeometry(-100, 0, 200, 200)
.., что поместило бы дочерний элемент на 100 пикселей за левую границу макета, таким образом скрывая самую левую половину дочернего элемента.
В PyQt 5.14 это больше не работает. С тем же кодом, ie
child.setGeometry(-100, 0, 200, 200)
, дочерний элемент теперь расположен точно на левой границе, а не на 100 пикселей за ее пределами. Никаких ошибок или исключений не возникает, просто молча интерпретирует отрицательные значения как 0.
Использование положительных значений для позиционирования все еще работает, так что
child.setGeometry(100, 0, 200, 200)
... действительно ставит ребенка в 100px справа от левой границы.
Итак, вопрос: есть ли способ, которым мы можем получить то же поведение, что и раньше в PyQt 5.14, чтобы мы могли обрезать дочерние элементы макета, помещая их вне границы макета?