Qt 创建菜单

MainWindow.h 文件

private:

QMenu *fileMenu;

QAction *newAct;

protected:

void contextMenuEvent(QContextMenuEvent* event);

 

MainWindow.cpp  文件

/*添加菜单*/

 fileMenu=menuBar()->addMenu(tr("&File"));    //添加文件菜单

fileMenu->addAction(newAct);   //在“文件”菜单中添加 子菜单
fileMenu->addSeparator();    //添加分隔线
fileMenu->addAction(exitAct);
/*创建QAction*/

newAct = new QAction ( tr("&New"), this);       //创建QAction

newAct->setShortcuts(QKeySequence::New);   //设置快捷键

newAct->setStatusTip(tr("Create a new file"));   //设置状态栏

connect(newAct, SIGNAL(triggered()), this,SLOT(newFile()));    //设置信号槽   点击菜单时会发出triggered()信号

 

void MainWindow::newFile()

{

       ..........      //当点击New时,该完成的功能

}

 

/*创建上下文关联菜单*/

voidMainWindow::contextMenuEvent(QContextMenuEvent*event)

{
QMenu menu(this);
menu.addAction(cutAct);
menu.addAction(copyAct);
menu.addAction(pasteAct);
menu.exec(event->globalPos());   //鼠标跟随
}
Qt 中,可以使用 QMenu 和 QAction 类来创建菜单。 首先,创建一个 QMenu 对象,并使用 addMenu() 方法将它添加到 QMainWindow 或 QDialog 中。然后,使用 addAction() 方法创建 QAction 对象,并将它添加到 QMenu 中。 下面是一个简单的例子,在 QDialog 中创建一个菜单: ```cpp #include <QDialog> #include <QMenu> #include <QMenuBar> class MyDialog : public QDialog { public: MyDialog(QWidget *parent = nullptr) : QDialog(parent) { // 创建菜单栏 QMenuBar *menuBar = new QMenuBar(this); setMenuBar(menuBar); // 创建菜单 QMenu *fileMenu = new QMenu("File", this); menuBar->addMenu(fileMenu); // 创建动作 QAction *newAction = new QAction("New", this); fileMenu->addAction(newAction); QAction *openAction = new QAction("Open", this); fileMenu->addAction(openAction); QAction *exitAction = new QAction("Exit", this); fileMenu->addAction(exitAction); // 连接动作的槽函数 connect(newAction, &QAction::triggered, this, &MyDialog::onNew); connect(openAction, &QAction::triggered, this, &MyDialog::onOpen); connect(exitAction, &QAction::triggered, this, &MyDialog::onExit); } private slots: void onNew() { // 处理 New 动作 } void onOpen() { // 处理 Open 动作 } void onExit() { // 处理 Exit 动作 close(); } }; ``` 在此例中,我们创建了一个名为 "File" 的菜单,并添加了三个 QAction,分别是 "New"、"Open" 和 "Exit"。然后,我们将这些 QAction 连接到 MyDialog 的槽函数中,以便处理它们的触发事件。 注意,我们使用了 connect() 方法来连接 QAction 的 triggered 信号和 MyDialog 的槽函数。当 QAction 被触发时,它会发出 triggered 信号,然后 MyDialog 会调用相应的槽函数来处理它。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值