PySideから画面解像度を取得しようとしています:
class Prog(QtGui.QDialog):
def __init__(self):
super().__init__()
self.timer = QtCore.QTimer()
desktop = QtGui.QDesktopWidget()
dim = desktop.availableGeometry(desktop.primaryScreen())
print(dim)
print(desktop.width())
print(desktop.height())
print(QtGui.QApplication.desktop().screenGeometry())
app = QtGui.QApplication(sys.argv)
prog = Prog()
prog.show()
sys.exit(app.exec_())
私はmacbookproを使用しているので、解像度が2560 x 1600であることはわかっていますが、Qtは一貫して間違った答えを出しているようです。
PySide.QtCore.QRect(0, 22, 1440, 874)
1440
900
PySide.QtCore.QRect(0, 0, 1440, 900)
私はここで何か間違ったことをしましたか?
Qtには何の問題もありません。このドキュメントを読むことができます:Retinaディスプレイのサポートと、ほとんどの場合、次の部分Mac OS X High-dpi Support
があります。
OS X高dpiモードの鍵は、以前はデバイスピクセルで指定されていたほとんどのジオメトリが、デバイスに依存しないポイントにあることです。これには、デスクトップジオメトリ(15インチのRetina MacBook Proでは1440×900であり、完全な2880×1800ではありません)、ウィンドウジオメトリ、およびイベント座標が含まれます。CoreGraphicsペイントエンジンはフル解像度を認識しており、その解像度で出力を生成します。たとえば、100×100のウィンドウは、通常の高dpi画面の画面上の同じ領域を占めます(他のすべてが等しい)。高dpi画面では、ウィンドウのバッキングストアに200×200ピクセルが含まれています。
そして:
このモードの主な利点は、下位互換性と無料の高dpiベクターグラフィックスです。認識しないアプリケーションは、以前と同じジオメトリで動作し続け、ハードコードされたピクセル値を保持できます。同時に、テキストなどの鮮明なベクターグラフィックを無料で入手できます。ラスターグラフィックスは自動的に改善されませんが、管理は可能です。欠点は、ポイントとピクセルを混合するコードを操作するときに避けられない座標系の混乱です。
ポイントとピクセル間の倍率は常に2倍です。これは、画面の解像度を変更する場合にも当てはまります。ポイントとピクセルは同じ量でスケーリングされます。「より多くのスペース」のアプリケーションをスケーリングすると、大きなバッキングストアにレンダリングされ、物理的な画面解像度にスケールダウンされます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加