6

Windows で QtCreator を使用して UI を設計.uiし、MacOSX で同じファイルを移植すると、一部のテキスト部分が非常に小さいデザインになります。実際には HTML 部分です。これは、QtCreator がテキスト サイズの単位として ではptなく をpx使用していることと、Windows と MacOSX ではデフォルトの画面解像度が大きく異なることが原因のようです。

より一貫した結果が得られなかった理由はありますか? ptそれぞれをに編集する以外に、回避策pxはありますか?

ありがとう。

4

2 に答える 2

3

経験則として、Qt Designer/Creator でコントロールのフォント サイズを手動で指定しないでください。問題が発生する可能性があります。矛盾の理由は、異なるプラットフォームが異なる DPI 設定を使用しているという事実です (Windows では 96 dpi、Mac OS X では 72 DPI)。これにより、フォントが異なるサイズで表示されます。

また、HTMLについて言及しました。QTextEditビルトイン エディタを使用して のようなウィジェットに HTML テキストを設定したとします。そこでフォント サイズを選択すると、Qt Creator は次のような HTML を生成します。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } </style></head><body style=" font-family:'Sans'; font-size:11pt; font-weight:400; font-style:normal;"> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Hello World</p></body></html>

ご覧のとおり、いくつかのfont-size属性が設定されていますが、これは非常に厄介です。この惨劇に対する単純で簡単な解決策は、style=属性を完全に削除することです。これにより、QTextEdit代わりにデフォルトのアプリケーション フォントが使用されます (これはすべてのプラットフォームで問題ないはずです)。

<html><head></head><body><p>Hello World</p></body></html>

余談ですが、これは翻訳者にとって、役に立たない CSS と格闘する必要がないため、より使いやすくなっています。

残念ながら、Qt の QTextEdit は "パーセント" フォント サイズ指定 (px と pt のみ) をサポートしていません。もしそうなら、「90%」のようなものを使用して、テキストをデフォルトのフォントよりも小さくすることもできますが、それでも安全です.

別のオプションは、編集可能にする QWebView です。これにより、完全な CSS サブセットを持ちながら、適切なテキストの書式設定が可能になります。しかし、それはやり過ぎかもしれません。

それが役立つことを願っています!

于 2010-01-09T00:39:54.040 に答える
1

ファイルにテキスト プロパティを設定する必要があり.uiますか? 通常、ウィジェットの text プロパティを設定すると、UIC はそのウィジェットの Font を、コードでゼロから作成したものに完全に置き換えます。Windows で編集すると、フォントに Windows 関連の名前が付けられ、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

于 2010-01-08T21:49:30.703 に答える