4

あるサイズを知りたいQGraphicsView。ウィジェットはグリッドレイアウトの一部であるため、そのサイズは固定されていません。と同等の高さを使用this->ui->myGraphicsView->width()してみましたが、これらの値は正確ではありません。

の現在のサイズを取得するにはどうすればよいQGraphicsViewですか?

4

5 に答える 5

5

QGraphicsViewの実際のサイズを知りたい場合は、QGraphicsView :: size(); QGraphicsViewのコンテンツサイズのみを知りたい場合は、QGraphisView :: viewport()。size();

于 2011-02-25T03:05:43.500 に答える
5

QGraphicsViewのサイズとしても常に100x30を受け取りました。表示される前に、QGraphicsViewのサイズを尋ねていたことがわかりました。

初期化コードをshowEventに移動した後、正しいサイズを取得しました。

于 2011-04-07T11:53:42.403 に答える
2

MainWindowのコンストラクターで幅/高さを取得します

それは問題!ウィジェットはまだペイントされておらず、サイズを要求しています。event、、などの他のイベントを使用してshowEventpaintEventウィジェットの初期化プロセス内で適切なサイズを取得します。

于 2015-02-16T20:42:23.297 に答える
0

回答:MainWindow :: show()を呼び出した後、サイズを取得します。

説明:Pieterと同じ問題がありました。MainWindow :: MainWindow()のようなウィジェットコンストラクターでは、グリッドレイアウトのQGraphicsViewのようなウィジェットの正しいサイズを取得できません。そのコンストラクターでは、ウィジェットのサイズと場所が決定されていないためです。したがって、MainWindow :: MainWindow()では、show()を呼び出してから、ビューまたは他のウィジェットのサイズを取得する必要があります。

于 2017-01-13T14:34:17.623 に答える
0

私はあなたと同じ問題を抱えています。QGraphicsView.size()常にreturn (100,30)です。私は自分のプロジェクトでこの問題を解決しました。

以下のコードを確認してくださいこのようなものです

...in a QTabWidget class...
def addANewTab(self):
  view = QGraphicsView()
  ...set view param...
  index = self.addTab(view, 'test')
  view.size() # it will return (100,30)
  self.setCurrentIndex(index)
  view.size() # it will return correct size

ビッグベルマーシーが答えたように、あなたはショーであることを確認してくださいQGraphicsView

于 2019-11-06T09:56:04.443 に答える