Как установить дочернее свойство виджета Qt с помощью StyleSheet

Я хотел бы установить свойство QT QDockWidget DockWidgetClosable, используя StyleSheet . Тем не менее, он находится внутри свойства "функции".

введите описание изображения здесь

Как я могу изменить его, используя таблицы стилей?

Я попробовал это без успеха.

Например.

QDockWidget{
    qproperty-floating:false; 
    qproperty-windowTitle:omg12;  
}

Устанавливает параметры "плавающий" и "windowTitle" в соответствующие значения. но я не нашел ключ для установки значения "DockWidgetClosable".

2 ответа

Решение

Поскольку QDockWidget в значительной степени считается "классом" в таблице стилей.qss - и если вы хотите изменить DockWidgetClosable собственность всех QDockWidget - вам придется изменить значения всех QDockWidget классы вроде так:

.QDockWidget{
    DockWidgetClosable: true;
}

Решение

Фактически вы можете изменить его с помощью таблицы стилей, но не в точности так, как описано выше.

Единственный способ заставить его работать - это напрямую вызвать и установить его значение в строку, содержащую каждое имя подфункции, которую я хочу использовать, и разделив их символом вертикальной черты.

Например:

      QDockWidget{
   qproperty-features:"DockWidgetClosable | DockWidgetFloatable | DockWidgetVerticalTitleBar";
}

Где я нашел эту информацию?

К сожалению, прямой информации нет, но я обнаружил небольшую подсказку при чтении онлайн-документации:

Там вы можете найти таблицу констант перечисления и соответствующих значений. Мое внимание привлекла одна из записей в таблице:

Из этой записи я пришел к выводу, что, возможно, подфункции qproperty-feature можно задать по их именам, и, к счастью, это сработало.

Другие вопросы по тегам