Спокойный размер текста приложения, неправильный при MacOSX

Разработка UIs с QtCreator в соответствии с Windows и портирование того же .ui файл при MacOSX приводит к проектам с некоторыми текстовыми очень маленькими частями - на самом деле, HTML. Кажется, что это прибывает из факта, что QtCreator использует pt вместо px как единица размера текста, и что разрешения экранов по умолчанию очень отличаются в соответствии с Windows и MacOSX.

Есть ли какая-либо причина, я не пришел к более последовательным результатам? Кроме редактирования каждого pt в px, есть ли какое-либо обходное решение?

Спасибо.

6
задан moala 13 January 2010 в 11:51
поделиться

2 ответа

[

] Как правило, вы не должны указывать размеры шрифтов для элементов управления вручную в Qt Designer/Creator, так как это приводит к появлению пролемов, которые у вас есть. Причиной несоответствия является тот факт, что разные платформы используют разные настройки DPI (96 dpi на Windows против 72 DPI на Mac OS X). Это приводит к тому, что шрифты отображаются с разными размерами.[

] [

]Также вы упомянули HTML. Я предполагаю, что вы установили некоторый HTML текст в []QTextEdit[]-подобный виджет, используя встроенный редактор. Когда вы выбираете размер шрифта там, Qt Creator создаст некоторый HTML подобно этому:[

] [

][]

Hello World

[][

] [

]Как видите, он устанавливает некоторые []атрибуты размера шрифта[], что действительно неприятно. Простым и легким решением этой проблемы является полное удаление атрибутов []style=[]. Это заставляет []QTextEdit[] использовать вместо него шрифт приложения по умолчанию (который должен быть в порядке на всех платформах):[

] [

][]

Hello World

[][

] [

]В качестве побочной надписи, это гораздо более дружелюбно для переводчиков, так как им не нужно бороться со всеми бесполезными CSS. [

] [

]К сожалению Qt QTextEdit не поддерживает спецификацию размера шрифта "percent" (только px и pt). Если бы он поддерживал, вы могли бы использовать что-нибудь типа "90%", чтобы сделать текст меньше шрифта по умолчанию, оставаясь при этом на всякий случай.[

] [

]Другим вариантом был бы QWebView, который вы делаете редактируемым. Это позволяет хорошо форматировать текст при полном подмножестве CSS. Но это может быть чересчур.[

] [

]Надеюсь, это поможет![

]
3
ответ дан 17 December 2019 в 07:05
поделиться

Нужно ли задавать свойства текста в файлах .ui ? Обычно при установке свойства text виджета UIC полностью заменяет шрифт этого виджета на то, что он создает с нуля в коде. Если вы редактируете их в окнах, то шрифт будет иметь имя, связанное с окнами, что может вызвать проблемы на mac.

Я обычно не прикасаюсь к шрифтам в дизайнере, чтобы виджеты получили свои шрифты по умолчанию, которые обычно выглядят хорошо и меняют их в c 'tor виджета так:

QFont f = ui.someLabel->font(); // get the current (default) font from the widget
f.setBold(true); // change only what's need to be changed
ui.someLabel->setFont(f); 
      // set the new and impreved font back to where it came from

Таким образом вы можете избежать путаницы с чем-либо, что является специфичным для платформы. Если ваше изменение действительно специфично для платформы, вы можете выбрать правильное изменение с помощью # ifdef Q_OS_WIN32 или # ifdef Q_OS_MAC

1
ответ дан 17 December 2019 в 07:05
поделиться
Другие вопросы по тегам:

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