承接上篇,為「開啟」動作加入圖示、使用 Qt 資源系統管理圖片、連接 triggered() 訊號至自訂槽函式,實現點擊選單/工具列/快捷鍵均可觸發邏輯。
.qrc)resources.qrc,置於專案根目錄/ (根前綴)Open.png,建議 32×32 px):/Open.png (冒號開頭表資源系統)
openAction->setIcon(QIcon(":/Open.png")); // 資源路徑以冒號開頭
private slots:
void open(); // 內部使用,私有槽即可
#include <QtGui/QMessageBox>
// ... 建構子中 ...
connect(openAction, SIGNAL(triggered()), this, SLOT(open()));
// 槽函式實作
void MainWindow::open() {
QMessageBox::information(this, tr("Open"), tr("Open a file"));
}
點選「檔案」→「開啟」、工具列按鈕、或按 Ctrl+O,均彈出訊息盒,確認訊號槽連通。
QMenu 提供 addMenu(),建立 QMenu* 子選單後 fileMenu->addMenu(subMenu) 即可,同樣可加入 QAction。
本文整理自「豆子空間」博客,原文出處:https://devbean.blog.51cto.com/448512/205958