2014-09-30 27 views
0

首先,我對Qt和Qt Creator頗爲新穎,如果這是一個愚蠢的問題,那就輕鬆一下。我如何使QMenuBar項目出現在其QMenu上

我正在練習使用Qt Creator,玩CSS樣式。特別是,我試圖讓菜單欄和菜單看起來像這樣(在Windows上):http://i.stack.imgur.com/9lMnQ.png

但是,到目前爲止我所能得到的最接近的是:http://i.stack.imgur.com/5Nlen.png

我在網上搜索,看看有沒有人嘗試過這樣的事情,但我無法找到任何東西。

我能想到的唯一可能的解決方案是如果菜單欄項目(沒有底部邊框)可以在菜單上方呈現,以便它們重疊,覆蓋它們的頂部邊框在它們重疊的寬度上。

如果這不起作用或者是不可能的或者其他任何問題,請提出任何其他解決方案/解決方法/黑客。

在此先感謝!

+0

當您將窗口移動到監視器上時,菜單位置將會改變。例如,如果它可以放在顯示器中,它可以打開到菜單欄項目的頂部。你將如何處理這個問題? – Ezee 2014-10-01 08:57:54

回答

0

我認爲唯一的好方法是避免任何技巧,並創建一個新的窗口小部件:

  • 創建一個從QWidget繼承與Qt::Popup屬性的新類。
  • QMenu放置到小部件的佈局中。
  • 獲取QMenuBar項目的位置,使用QMenuBar::getActionGeometry進行點擊。
  • 計算小部件和小部件中要放置在菜單欄上的選項卡的位置。
  • 使用QWidget::setMask自定義窗口小部件的窗體,使其看起來像帶有選項卡的矩形。
  • 顯示您的部件而不是QMenu
相關問題