#qt #window #dpi #qmenu
Вопрос:
Я попытался завести обычай QWidgetAction
. Это прекрасно работает. Однако… в окнах с другим разрешением шрифт в меню меняется неочевидным образом.
- 100% -> Размер точки = 8
- 125% -> Размер точки = 9
- 150% -> Размер точки = 9
(поэтому я не смог подогнать какую-то линейную функцию).
Я просматриваю источники Qt, чтобы найти, где установлен размер шрифта, но пока не повезло (пока).
Может быть, кто-нибудь может указать мне место, где размер шрифта устанавливается в зависимости от DPI? (Чтобы я мог использовать тот же расчет для своего пользовательского виджета.
Спасибо, ребята.
Ответ №1:
Добавить QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
main.cpp и проверьте еще раз, я думаю, это решит вашу проблему.
кроме того, этот документ объясняет это более подробно.
Отредактированный:
Для настройки шрифта QLabel
вы можете сделать это двумя способами :
- С помощью графического интерфейса можно изменить шрифт всех виджетов в графическом интерфейсе отсюда :
- создайте
QFont
объект и добавьте к нему тот же шрифт меню, а затем с помощью функции setFont QLabel добавьте его.
QFont font;
font.setPointSize(9);
label->setFont(font);
Размер шрифта по умолчанию для всех виджетов и QMenu в Qt равен 11.
Комментарии:
1. Спасибо, я был удивлен, что он еще не использовался в проекте. Но это, похоже, не решает проблему. Так как мне нужно знать, какой размер шрифта будет использоваться в меню при создании QLabel. Пользовательский виджет в меню имеет, среди прочего, метку QL. Мне нужно, чтобы QLabel имел тот же шрифт, что и меню. Как это сделать?
2. После редактирования: Конечно, это совершенно очевидные вещи. Но как узнать шрифт, который QMenu будет использовать при рисовании (контекстного) меню при динамическом создании QLabel? То, что вы предложили, довольно очевидно и не отвечает на вопрос.
3. поэтому я не понял, чего именно ты хочешь. добавьте свой проект или создайте пример.
4. Я хочу знать, какой размер шрифта QMenu будет использовать до события рисования.
5. Вы должны иметь возможность использовать шрифт, связанный с действием меню
QAction::font
.