2017-07-15 120 views
-1

我試圖在主窗口的右下角放置一個彈出窗口,即使主窗口被調整大小或展開,它也應該可見。
如何在Qt 5.9(C++)中做到這一點?在Qt主窗口的右下角放置彈出窗口

+0

你能否提供你正在試圖運行代碼的例子嗎? – Fabien

+0

在SO中,這個問題的作者高度重視他試圖解決他的問題。你可以告訴我你嘗試過什麼。 – eyllanesc

+0

您應該手動調整彈出時,調整主窗口,請參閱代碼['resizeEvent'(http://doc.qt.io/qt-5/qwidget.html#resizeEvent) – m7913d

回答

0

您的問題中的重要任務是在調整QMainWindow或移動QMainWindow時移動彈出窗口,因此我們必須重寫resizeEventmoveEvent方法。下面的代碼演示瞭如何做到這一點:

void MainWindow::movePopUp() 
{ 
    QPoint p = mapToGlobal(QPoint(size().width(), size().height())) - 
      QPoint(popup->size().width(), popup->size().height()); 
    popup->move(p); 
} 

void MainWindow::resizeEvent(QResizeEvent *event) 
{ 
    movePopUp(); 
    QMainWindow::resizeEvent(event); 
} 

void MainWindow::moveEvent(QMoveEvent *event) 
{ 
    movePopUp(); 
    QMainWindow::moveEvent(event); 
} 

輸出:

enter image description here

完整的例子是here

+0

嗨eyllanesc,謝謝。我嘗試過它並且運行良好。我仍然有一些疑惑。最初,彈出窗口顯示在主窗口外面。當我試圖替換或調整主窗口時,彈出窗口會進入它的內部。爲什麼?我必須從開始本身顯示主窗口內的彈出窗口。我還有一個問題,我可以在哪裏設置彈出窗口的計時器? – Vector

+0

你可以給我看一個你得到的視頻,我不明白你的意思是彈出窗口。 – eyllanesc

+0

你想用計時器做什麼? – eyllanesc