По состоянию на Qt 5.2
вы не можете;не проверяли 5.3
, но AFAIK они ничего не изменили в QMdiArea/QMdiSubWindow
в 5.3
выпуске.
Самое простое решение, которое у вас есть, это использовать QCommonStyle
и раскрасить строку заголовка, используяQPainter
.Для получения дополнительной информации см. Документацию QCommonStyle и QStyle .Обратите внимание, что для вашего класса стилей рекомендуется получить QCommonStyle
, а не QStyle
.QCommonStyle
наследует QStyle
, поэтому вы ничего не потеряете.
И если вы хотите добиться более сложных эффектов, таких как тень на вложенном окне, то единственный вариант, который вы здесь оставите, - это получить QMdiSubWindow
и QMdiArea
, вызовите QWidget::setWindowFlags(Qt::FramelessWindowHintflag)
в производном классе QMdiSubWindow
и реализуйте с нуля свое собственное подокно со своей собственной строкой заголовка.Затем вы можете определить свои собственные Q_PROPERTY
с типом QColor
и получить доступ к тем из QSS
, как показано здесь , чтобы настроить цвета заголовка из QSS
.
Другой вариантбыло бы создать новый виджет области MDI с нуля, но я не думаю, что это будет применимо в вашем случае.Если вам просто нужно настроить строку заголовка, используя собственный стиль, это лучший подход, который вы можете использовать.Если в случае неполадок могут быть предоставлены примеры для редактирования этого поста.
Но если вы хотите настроить стандарт QMdiSubWindow
, используя только QSS
, к сожалению, на данный момент это невозможно.