Задать вопрос
@Result007
P|-|P

Как подключить файл стилей qss?

Здравствуйте все! С Наступающим!

Пытаюсь сделать единый файл стилей для программы на QT 5.7 Widgets.

Делаю по инструкции: Ссылка

У меня есть QTabBar. Имя объекта myTabWidget.

Пытаюсь сделать так :
QFile styleFile(":/qss/style.qss");
styleFile.open(QFile::ReadOnly);
QString styleSheet = QString::fromLatin1( styleFile.readAll() );
styleFile.close();

ui->myTabWidget->setStyleSheet(styleSheet);


Но ничего не происходит. Переменную styleSheet проверял, стили из файла подтягиваются.

Странно то, что если я ту же самую строку из файла подключу напрямую:
ui->myTabWidget->setStyleSheet("QTabBar::tab:first { border-top: none; }");


То все работает.

Помогите пожалуйста.
  • Вопрос задан
  • 3484 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
kulinich
@kulinich
С++ программист
Я делал так (это правда давно было, может в текущей версии Qt надо подправить):
int main(int argc, char** argv)
{	
  QApplication app(argc, argv);
  QFile file(":/qss/stylesheet.qss");
  file.open(QFile::ReadOnly);
  app.setStyleSheet(file.readAll());
  bool ok = app.exec(); 
  return ok;
}


в файле stylesheet.qss:
QTabWidget {
	background-color: #999999;
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
akzhan
@akzhan
Вы уверены, что кодировка таблицы стилей latin1?

Я бы использовал QString::fromUtf8.

Закрывать файл, насколько я понимаю, не надо.
Ответ написан
Zifix
@Zifix Куратор тега Qt
Barbatum
а) Кастомные интерфейсы лучше делать на QML, виджеты дальнейшего развития не получат, баги с QSS фиксить никто не будет и т.д.
б) https://habrahabr.ru/company/istodo/blog/216275/
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы