Size: a a a

2021 June 10

v

vyacheslav@deepin:~$ in Qt
файл со стилями только через ресурсы добавляй, чтобы он вшился в бинарник
источник

A

Anatoly in Qt
setStyleSheet можно прописывать в теле функции в любом файле, на любом этапе работы программы. Читать стили можно из файла, можно из строки. Строку, перед вызовом setStyleSheet, можно менять. Можно хоть анимации делать )
И как правильно заметили выше файл со стилями лучше добавить в ресурсы, тогда не придется его отдельно через инсталлятор поставлять с программой.
источник

A

Anatoly in Qt
* картинки тоже в ресурсы можно добавлять.
источник

NM

Nastya Medveda in Qt
Спасибо! Я смогла собрать приложение с помощью macdeployqt
источник

𝕄

𝕄𝕣. 𝔾𝕣𝕒𝕪... in Qt
Понятно, а где это делать правильнее всего?
источник

A

Anatoly in Qt
Правильнее всего это делать там где оно необходимо. )  Это может быть отдельный класс, который управляет стилями в приложении... это может быть вызов в компоненте...  длинная история.  Главное чтоб это было удобно и применялось к тому компоненту, который необходимо изменить. Придется ещё почитать про стили, поскольку можно поменять стили всех компонентов, а можно один, выбранный )
источник

𝕄

𝕄𝕣. 𝔾𝕣𝕒𝕪... in Qt
Почему не label? Проще всего)
источник

𝕄

𝕄𝕣. 𝔾𝕣𝕒𝕪... in Qt
На элемент налепить изображение.
источник

v

vyacheslav@deepin:~$ in Qt
зачем натягивать сову на глобус
источник

𝕄

𝕄𝕣. 𝔾𝕣𝕒𝕪... in Qt
Но ведь это не видно в конечном результате программы.
источник

A

Anatoly in Qt
Если это два разных компонента, то в итоге может быть видно, в конечном результате. Прямоугольный рисунок под овальной кнопкой может смотреться странно. Кроме того, если применять стиль к конкретному компоненту, то в итоге поддерживать такой код будет проще. Если надо что то поменять то меняется один компонент, а не два.
источник

NM

Nastya Medveda in Qt
Подскажите, не могу понять как исправить.
у меня есть QLineEdit, в который пользователь должен ввести число (в том числе дробное).
Чтоб QLineEdit принимал только числа я применяю соответсвующий валидатор:

    refEdit = new QLineEdit;
   refEdit->setValidator(new QDoubleValidator());

Из-за региональных настроек дробная часть введенного числа отделяется запятой, а не точкой. Но такое число не конвертируется обратно в Double:

            qDebug() << "Ref plain: " << refEdit->text();  // "38,5"
           qDebug() << "Ref toDouble: " << (refEdit->text()).toDouble(); // 0

Подскажите, пожалуйста, как правильно конвертировать QString в double игнорируя региональные настройки?
источник

RG

Renat Garaev in Qt
Заменить , на . А потом сконвертировать?
источник

NM

Nastya Medveda in Qt
Не очень элегантное решение. Я нашла что есть способ учитывать QLocale при конвертации, но тоже выглядит как дикий overkill
источник

S

Sergey eSKon in Qt
там по-моему локаль ещё передаётся
источник

S

Sergey eSKon in Qt
в валидатор
источник

S

Sergey eSKon in Qt
нету доков под рукой
источник

S

Sergey eSKon in Qt
поищите в хелпе провалидаторы про локали
источник

м

мыши in Qt
так он и так конвертируется без региональных настроек, чтобы конвертировать с запятой наоборот надо их учитывать
источник

NM

Nastya Medveda in Qt
нет не конвертируются. Если в региональных настройках разделитель - запятая, то в QLineEdit будет 38,5. И чтоб его конвертировать toDouble  я сделала вот такое:
QLocale locale; // getting system locale to handle the decimal separator
qDebug() << "Locale: " << locale.toDouble(refEdit->text()); // 38.5
источник