首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

Qt學習之路(12):選單與工具列 QAction 基礎架構

     編輯:關於C++

在 QMainWindow 架構上建立選單與工具列。QAction 封裝動作資訊(文字、圖示、快捷鍵、回呼),神奇之處在於:加入選單顯示為選單項,加入工具列顯示為按鈕。

建立 QAction


// 前向宣告
class QAction;

// 成員變數
private:
    QAction *openAction;

// 建構函式
openAction = new QAction(tr("&Open"), this);
openAction->setShortcut(QKeySequence::Open);
openAction->setStatusTip(tr("Open a file."));
  • tr("&Open"):& 設定快捷鍵字母 (Alt+O)
  • QKeySequence::Open:跨平台標準快捷鍵 (Ctrl+O),自動適配 Mac/PC 鍵盤差異
  • setStatusTip:狀態列提示(需先有狀態列)

加入選單與工具列


QMenu *file = menuBar()->addMenu(tr("&File"));
file->addAction(openAction);
QToolBar *toolBar = addToolBar(tr("&File"));
toolBar->addAction(openAction);

menuBar()、addToolBar() 若不存在自動建立。需包含對應頭檔:QMenu、QMenuBar、QKeySequence、QToolBar、QAction。

完整程式碼


// mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QtGui/QMainWindow>
class QAction;
class MainWindow : public QMainWindow {
    Q_OBJECT
public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();
private:
    QAction *openAction;
};
#endif

// mainwindow.cpp
#include <QtGui/QAction>
#include <QtGui/QMenu>
#include <QtGui/QMenuBar>
#include <QtGui/QKeySequence>
#include <QtGui/QToolBar>
#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) {
    openAction = new QAction(tr("&Open"), this);
    openAction->setShortcut(QKeySequence::Open);
    openAction->setStatusTip(tr("Open a file."));
    QMenu *file = menuBar()->addMenu(tr("&File"));
    file->addAction(openAction);
    QToolBar *toolBar = addToolBar(tr("&File"));
    toolBar->addAction(openAction);
}
MainWindow::~MainWindow() {}

按 Alt+F 開啟選單。後續將加入圖示美化。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved