Как отключить наследование setGraphicsEffect для детей в Qt?Отключить наследование setGraphicsEffect в Qt
Например, представьте мой проект имеет эту иерархию: http://i.imgur.com/B1PbGPR.png
Когда я применяю тень с setGraphicsEffect к раме линии редактирования унаследует что эффект тени, и я не хочу этого. Это то, что я получаю: http://i.imgur.com/Qo1aVSK.png
Как вы можете видеть, вокруг букв строки редактируется тень. Любая идея, как это исправить?
Еще одна вещь, видимая на изображении над MainWindow, имеет такие флаги, как Qt :: FramelessWindowHint и Qt :: WA_TranslucentBackground, поэтому кадр должен быть «окном», и кадр автоматически изменяется при изменении размера MainWindow, поэтому я не могу изменить эту иерархию.
В соответствии с просьбой Timusan здесь код тени: Qt: shadow around window
Чтобы применить его к раме:
CustomShadowEffect * тень = новый CustomShadowEffect();
shadow-> setColor (c);
тень-> комплектDistance (масштаб);
тень-> комплектBlurRadius (blur_radius);
ui-> рама-> комплектGraphicsEffect (тень);
ОБНОВЛЕНИЕ
макета() -> addWidget (ui-> lineEdit);
Привет и добро пожаловать в SO! Хорошо сформированный вопрос, но можете ли вы также опубликовать образец кода того, как вы применили тень? Когда люди видят код, они могут получить лучшее представление о том, что вам может не хватать. – Timusan
Код тени (первый ответ): http://stackoverflow.com/questions/23718827/qt-shadow-around-window Как я применил тень: shadow-> setColor (c); тень-> комплектDistance (масштаб); тень-> комплектBlurRadius (blur_radius); ui-> рама-> комплектGraphicsEffect (тень); @Timusan –