2017-07-10 3 views
1

ビューポートを希望の寸法に設定できません。指定したにもかかわらず(1980×1080)、結果の寸法は(1366×855)です。 pyqtgraphの3D例もフルスクリーンを表示せず、左下隅にのみ配置されています。GLViewWidgetビューポートサイズ

import pyqtgraph.opengl as gl 
from PyQt5 import QtWidgets 
from pyqtgraph.Qt import QtCore  

app = QtWidgets.QApplication([]) 

view = gl.GLViewWidget() 
view.opts['viewport'] = (0, 0, 1920, 1080) 
view.showMaximized() 

view.setMaximumSize(1920, 1080) 
print ("%d %d" % (view.height() , view.width())) 
view.setWindowTitle('3D Matrix Visualization') 


## create three grids, add each to the view 
xgrid = gl.GLGridItem() 
ygrid = gl.GLGridItem() 
zgrid = gl.GLGridItem() 
view.addItem(xgrid) 
view.addItem(ygrid) 
view.addItem(zgrid) 

## rotate x and y grids to face the correct direction 
xgrid.rotate(90, 0, 1, 0) 
ygrid.rotate(90, 1, 0, 0) 

## scale each grid differently 
xgrid.scale(0.2, 0.1, 0.1) 
ygrid.scale(0.2, 0.1, 0.1) 
zgrid.scale(0.1, 0.2, 0.1) 

私は、ビューポートの設定を変更せずに、コードを実行した場合、親ウィンドウは、showMaximized()のおかげで、フルスクリーンで表示されます。しかし、ドロアブル領域は左下隅の画面の1/4に制限されています。コード上に使用

view.opts['viewport'] = (0, 0, 1920, 1080)

、描画可能領域を大きくするんが、最大の画面をカバーするのに十分な大きさではありません。それは1366x855です。グリッド/軸は右上に表示され、1366x855の中心には表示されません。デフォルトモードでは、グリッド/軸は1/4の描画可能領域の中央に表示されます。

何か助けていただければ幸いです。

+0

実際の描画可能領域は、glClearColorを赤のように見えるものに設定して確認しましたか?レンダリングコードの中でglViewportを直接呼び出そうとしましたか? –

+0

両方を試しても何の効果もないようです。 'glClearColor(1,1,0,1)' 'glViewport(0、0、2880、1800)' – deepSymmetry

+0

これは網膜のスクリーンですか? MacOS Xには、ウィンドウ/ビューのサイズとビューポートのディメンションに関するいくつかのルールがあります。そうでなければ、私はGLGridItemのソースを読む以外のアイデアがありません –

答えて

0

GLViewWidgetは、PyQtGraph's Docに示すように、QtOpenGL.QGLWidgetのサブクラスです。

親ウィジェットのサイズを変更しながら、view.setFixedSize(WidthOfParent, HeightOfParent)を使用してビューポートのサイズを調整することができます。

関連する問題