作為一種交互性強、使用方便的右鍵菜單在程序中是非常常用的,在Qt中可以輕松的實現。
2、右鍵菜單關聯控件
QWidget及其子類都可有右鍵菜單,首先設置QWidget與右鍵菜單有關的函數setContextMenuPolicy(),屬性對應項為contextmenuPolicy。
setContextMenuPolicy函數的參數為枚舉類型Qt::ContextMenuPolicy,qt幫助文檔中有相應介紹:
b、Qt::CustomContextMenu
它是發出QWidget::customContextMenuRequested信號,注意僅僅只是發信號,意味著要自己寫顯示右鍵菜單的slot。這個信號是QWidget唯一與右鍵菜單有關的信號(也是自有的唯一信號),同時也是很容易被忽略的signal:
void customContextMenuRequested ( const QPoint & pos )一般來說為了方便,我們會省略自己添加connect來關聯槽函數,而是采用默認的槽函數,默認槽函數命名規則:void on_控件ID_customContextMenuRequested(const QPoint &pos);
c、Qt::ActionsContextMenu
該類型比較簡單,直接使用QWidget::actions()函數添加動作即可,點擊右鍵就會自動彈出菜單。
如對於QTableView控件,設置如下: