簡體   English   中英

Qt QGraphicsview如何掛鈎以調整大小事件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM