[英]Qt QGraphicsview how to hook to resize event
我們正在研究Qt C ++ Widget項目,最近遇到了麻煩。 我們是Qt新秀。
在我們的小部件上,有兩個QGraphicsView
,它們需要在調整窗口大小時自動調整大小(我們已經完成了此操作),並將其中的內容相應地調整大小/適合/調整為...
因此,我們認為我們需要以某種方式掛接到onResizeEvent
或查找執行該操作的插槽。 但是我們在某種程度上迷失了如何去做。
PS:請原諒我的英語。
如果您有QWidget,則只需重新實現resizeEvent
函數。
void QWidget::resizeEvent ( QResizeEvent * event ) [virtual protected]
在Qt文檔中,您可以找到完整代碼示例的塗鴉示例: http : //doc.qt.io/qt-5/qtwidgets-widgets-scribble-example.html
或者,您可以安裝事件處理程序並獲取QEvent::Resize
。 此處介紹了如何安裝事件過濾器: http : //qt-project.org/doc/qt-4.8/eventsandfilters.html
您可以使您的自定義類繼承自QGraphicsView。 您應該在自定義QGraphicsView中重新實現resizeEvent(QResizeEvent * event),如下所示:
void MyView::resizeEvent(QResizeEvent *event)
{
fitInView(0, 0, 500, 500,Qt::KeepAspectRatio);
QGraphicsView::resizeEvent(event);
}
這樣,視圖將始終顯示整個場景。 即,如果更改了窗口大小並且調整了graphicsView的大小,則場景將被縮放,並且您可以適當地看到所有內容。
如果要在某個插槽中調整大小,則可以使用sender()
。 順便說一句,您始終可以使用調試器或日志/回溯獲取此類信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.