問題タブ [qfontmetrics]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
qt - QTextEdit の表示幅とテキスト幅
QTextEdit
(読み取り専用、スクロールバーなし、moveCursor) を使用して、Qt で 'scrolling-text' クラスを作成してQTimer
います。
私の問題は、クラスに送信されたテキストが QTextEdit ボックスよりも短い (狭い) 場合です。愚かなことですが、Qt を初めて使用するので、指定されたテキストの幅 (フォントによって異なります) と、QTextEdit
(FrameStyle を計算した後、等。)。ピクセルを計算する必要があると思います。
何か案は?ありがとう
qt - QFontMetrics::boundingRect() が間違ったサイズの四角形を返すのはなぜですか?
Qt4.7を使用しています。ある状況で QFontMetrics を使用してテキストをレンダリングすると、幅が正しくありません。私のコードは次のようなものです:
fm.boundingRect(str) は、dpi が変更されている間、常に固定の rect を返すことがわかりました。
qt - QPainter の drawText() で描画するときにテキストを垂直方向に中央揃えにします
テキストを画像の中央に配置するときの私の戦略は、そのテキストの境界長方形を取得し、幅または高さを 2 で割ることです。この場合も同じようにしました。これは私が作成した例です:
結果は次のとおりです。テキストは行の中央ではなく下に表示されます。
アンドロイド:
Windows:
線を使用して、メトリックの長方形に基づいてテキストの周りにフレームを描画しました。
意図した結果は、指定された点/線を正確に中心に表示テキストを配置することでした:
概観すると、これが私が抱えている実際の
問題です
。数字は線の真ん中にあるはずで、下にある必要はありません。
私が使用している関数は、そこにないアクセントやその他の大きな文字を含むサイズを返します。そこにある文字に対してのみピクセル単位で長方形を取得するにはどうすればよいですか?
qt - ウィンドウの高さに基づいてフォントの pointSize のサイズを変更します
ラベルのテキスト フォント サイズを変更するオプションがあり、現在は layout を使用していません。親ウィンドウのサイズ変更された高さに基づいて、テキストのフォント pointSize を変更する方法。増加した高さの係数を計算する方法と、その係数に基づいてフォントの pointSize を掛けることができます。
c++ - QFontMetrics boundingRect
QFontMetrics の「boundingRect」関数に問題があり、正しい結果が返されません。
デバッガーでは、rctLine には以下が含まれます。
これは非常に紛らわしいです。参照位置が渡されないため、x1 と y1 の両方が 0 であると予想し、x2 と y2 の両方が正であると予想します。
返された四角形は正しくありません。drawText と配置で使用すると、文字列の一部が表示されなくなります。
この関数が間違った結果を返す方法に関する他の投稿があることは知っていますが、これらを見てみましたが、役に立ちませんでした。
RedHat 7.2 で Qt5.6 を使用しています。
私も試しました:
pobjParent は親ウィジェットで、rctParent には以下が含まれます。
intAlign には 33 が含まれます (左、上)
この場合、rctLine は以下を返します。
ただし、境界の四角形はまだ小さすぎて、レンダリング時に「S」の一部が欠落しています。
c++ - Qt 印刷 - QFontMetrics クラス
私は Qt が初めてで、QPrinter / QPainter を探索しています
ドキュメントによると、mm で印刷するには、解像度を考慮して、座標をプリンターの単位に変換する必要があります。そこで、次のコードを書きました。
これは、印刷行などでうまく機能しています。
ここでテキストを測定する必要があるため、ドキュメントによると QFontMetrics() クラスを使用しました。
問題はPainter->fontMetrics().width(stringToMeasure)
、ドキュメントによると、ピクセル単位で幅を返すことです。これをmmに換算するにはどうすればよいですか?
どんな助けでも大歓迎です!
qt - QFontMetrics は Windows の dpi スケーリングを説明できますか?
アプリケーションでこれを行うと、
次に、フォントは高解像度ディスプレイで自動的に拡大されます。Windows 10 でフォント スケーリングを明示的に増やした場合も同様です ([設定] -> [システム] -> [カスタム スケーリング])。
ただし、Windows 10 で次のコードを 100% および 200% のスケーリングで実行すると、2 倍のサイズが返されません。
奇妙なことに、1ピクセルの違いしかありません。
何故ですか?QFontMetrics で Windows のスケーリングを考慮することはできますか? または、論理/物理 DPI を使用して、フォント サイズを 2 倍にする必要があると推測する必要がありますか?
ありがとう
c++ - QFontMetrics の結果を解釈するには?
取得した値を理解するのに問題がありますQFontMetrics
次の画面解像度では、次のようになります。
- ) 1920/1080: 256/16
- ) 3840/2160: 178/10 の高 DPI サポート
qputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "1")
- ) 3840/2160: 536/32 の高 DPI サポートなし
私の理解では、ピクセルの幅/高さを取得しています。なぜ私はハイレゾの解像度でこれほど小さい高さを得るのだろうか (2 を参照)。より多くのピクセルを使用して、逆に期待したいと思います。
私が見ることができるのは、1 と 3 の間に (ほぼ) 因子 2 があることです。これは理にかなっています。しかし、その後 (3 を使用し、DPI サポートなし)、UI が判読できません (高 DPI 画面のために小さすぎます)。では、2 はどのように適合するのでしょうか。奇妙な結果が得られます。
これらの値の解釈についてヒントを与えることができる人はいますか?
備考:スタイルシート/Qt Designer の高 dpi 画面対応に関連? 私が見つけようとしているのは、さまざまな解像度/プラットフォームでの UI ウィンドウの適切な幅/高さです
いいコメントですね。hi-dpi Qt では、1280/780 の「仮想画面」を使用して 1:3 にスケーリングします。そのピクセル比を手動で調整できるのだろうか。私の場合、設定することで発生しますqputenv("QT_AUTO_SCREEN_SCALE_FACTOR", "1")
。2:1に設定する機会はありますか?
- ) "デスクトップ w1920 w1080 - 比率: 1 | 80 文字: w560 h16 | 43 文字: w256 h16"
- ) "デスクトップ w1280 w720 hi DPI 比率: 3 | 80 文字: w400 h10 | 43 文字: w178 h10"
- ) "デスクトップ w3840 w2160 - 比率: 1 | 80 文字: w1200 h32 | 43 文字: w536 h32"