問題タブ [highdpi]
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.
c++ - 新しい Qt 5.7+ 高 DPI モニターごとの DPI 対応アプリケーションの開発にアプローチするにはどうすればよいですか?
Qtの公式ドキュメントと、Qt での高 DPI サポートに関する StackOverflow に関する多くの記事と質問を読みました。それらはすべて、古いアプリケーションを移植し、可能な限り最小限の変更で動作させることに重点を置いています。
しかし、モニターごとの DPI 対応アプリをサポートする目的で、まったく新しいアプリケーションを開始する場合、最善のアプローチは何ですか?
私が正しく理解していれば、Qt::AA_EnableHighDpiScaling
私が望むものとは正反対です。実際に HighDpiScaling を無効にして、実行時にすべての寸法を手動で計算する必要がありますか?
提案の多くは、サイズをまったく使用せず、フローティング レイアウトを使用するように言っています。しかし、多くの場合、少なくとも最小の幅および/または最小の高さが存在することが望まれます。Qt Designer では絶対ピクセル単位でしか値を入力できないため、正しいアプローチは何ですか? モニターの解像度が変わった場合に寸法を再計算するコードはどこに配置すればよいですか?
それとも、自動スケーリングを使用する必要がありますか?
以前の Qt アプリからの私のソリューション (十分にテストされていません)
HighDPI サポートを追加しようとした古いアプリの 1 つで、このアプローチを使用しました。DOM のすべての子をリストし、比率を指定して 1 つずつサイズを変更します。Ratio = 1 は、Qt Designer で指定した寸法と同じ寸法を生成します。
メインから呼び出されます:
これは良い解決策ではないと思います。新しく始めたばかりで、コードを最新の Qt 標準に合わせて完全にカスタマイズできる場合、HighDPI アプリを取得するにはどのようなアプローチを使用すればよいですか?
c++ - Qt でフォントサイズを自動的にスケーリングしてユーザー インターフェイスを設計する
Qt 5.7 では、高 DPI サポートが改善されたと主張しています。最新の Qt では、次のようなアプリ スターターを作成できます。
高 DPI での実行時に UI が自動的にスケーリングされることを期待していますが、スケーリングが必ずしも期待どおりに機能するとは限りません。少なくとも、Linux では UI をスケーリングしません。私が見ているのは、レイアウトが拡大されていることですが、フォントは、Qt Creator がフォーム レイアウト ツールで割り当てたサイズで、元の場所にとどまっています。
ある要素のフォントを大きくしたい場合、それをフォームのデザイン画面で設定すると、「2 倍の大きさ」とは言えません。代わりに、フォント プロパティに絶対ポイント サイズを挿入します。
QMessageBox の静的メソッドも同様のようです。静的な QMessageBox などQMessageBox::info
を表示し、そのテキストとアイコンは、高 dpi を補うために拡大されません。
では、Creator で標準 DPI で設計された Qt アプリケーションを、高 DPI 環境、フォント、QMessageBoxes などに自動的に調整できるようにするには、正確に何をすればよいのでしょうか。
QMessageBox に大きなフォントを使用するようにアプリケーションのスタイル シートを設定することで、ある程度のトラクションが得られました。しかし、それは醜く感じられ、自動的にトリガーする方法がわかりません。
編集:
環境変数の手動設定
declare -x QT_SCALE_FACTOR=2
私が探している種類の動作を呼び出すようです。ただし、高 DPI 環境でのみ、できればプログラム自体の中で自動的に行う方法 . ( setenv (3)
Linuxでも動作する可能性があると思います)
java - Ubuntu で IDE (PDE) を処理する際の「システム」フォント サイズを変更する
高解像度ディスプレイを搭載した Ubuntu ラップトップで Processing PDE を使用しています。Processing PDE は、システムの残りの部分とは異なり、適切にスケーリングしません。もちろん、エディターでフォントを変更することはできますが、メニューやコンソールなどは非常に小さいものです。PDE は Java Swing アプリケーションだと思います。
アプリケーションで「システム」フォントサイズを大きくできる方法 (コマンドラインフラグ? 環境変数? ...?) はありますか?
windows - 高 DPI Windows アプリケーションで DEFAULT_GUI_FONT を使用する
高 DPI モニターで見栄えを良くしたい Windows アプリケーションがあります。アプリケーションは多くの場所で DEFAULT_GUI_FONT を使用しており、この方法で作成されたフォントは正しくスケーリングされません。
あまり痛みを伴わずにこの問題を解決する簡単な方法はありますか?
c++ - Qt: 高 DPI QPixmap の描画
2 つの笑顔を描くアプリケーションを作成しました。
最初のものは QWidget に直接描画されます:
2 つ目は にペイントされ、QPixmap
次にウィジェットにブリットされます。
ここまでは順調ですね。高解像度画面でアプリがどのように見えるかを確認したかったので (私は持っていません)、QT_SCALE_FACTOR=2
アプリを設定して実行します。
最初の顔はシャープで鮮明ですが、2 番目の顔はピクセル化されています。これは、低解像度のピックスマップに描画されているためです。だから私はそれを拡大しQPixmap
、正しい設定をしましたdevicePixelRatio
:
結果:
2 番目の顔は、正しい解像度で描画されているように見えますが、アップスケールされています。今、私は立ち往生しています。Retina/HiDPI画面で正しく動作するようにQPixmap
描画してから描画する方法は?QPixmap
アプリケーション全体: