zoukankan      html  css  js  c++  java
  • Qt 多级menu

    image

    实现如上的一个多级menu, Qt 中实现非常简单。 首先明确一个概念, QMenu表示“容器”, QAction表示具体的项。 所有上图中”其他”,“发票”等都要是QMenu, 而代充类型、有发票都要是QAction, 所以代码实现就非常简单了。

    1. 构造

    1 pMenu_ = new QMenu(tbaTableView_);
    2 pBatchEditMenu_ = new QMenu(pMenu_);
    3 pBatchEditOtherMenu_ = new QMenu(pBatchEditMenu_);
    4 batchOtherBillMenu_ = new QMenu(pBatchEditMenu_);
    5 batchOtherWarrantyMenu_ = new QMenu(pBatchEditMenu_);
    6 batchOtherAutoSendMenu_ = new QMenu(pBatchEditMenu_);
    7 batchOtherRecommendMenu_ = new QMenu(pBatchEditMenu_);
    8 batchOtherDiscountMenu_ = new QMenu(pBatchEditMenu_);

    2.析构

    1 delete batchOtherBillMenu_;
    2 delete batchOtherWarrantyMenu_;
    3 delete batchOtherAutoSendMenu_;
    4 delete batchOtherRecommendMenu_;
    5 delete batchOtherDiscountMenu_;
    6 delete pBatchEditOtherMenu_;
    7 delete pBatchEditMenu_;
    8 delete addItemsTimer_;
    9 delete pMenu_;

    注意顺序。

    3. 代码实现

    1 pBatchEditOtherMenu_->setTitle(tr("其他(Q)"));
    2 batchOtherBillMenu_->setTitle(tr("发票"));
    3 batchOtherBillMenu_->addAction(tr("有发票"),this,SLOT(haveBillBatchEdit()));
    4 batchOtherBillMenu_->addAction(tr("无发票"),this,SLOT(noBatchEdit()));
    5 batchOtherRecommendMenu_->setTitle(tr("橱窗推荐"));
    6 batchOtherDiscountMenu_->setTitle(tr("会员打折"));
    7 pBatchEditMenu_->addMenu(pBatchEditOtherMenu_);
    8 pBatchEditOtherMenu_->addMenu(batchOtherBillMenu_);

    4. 快捷键以及分割线

    1 QAction* openDetailPage = pMenu_->addAction(tr("打开宝贝页面"));
    2 openDetailPage->setShortcut(QKeySequence(tr("Ctrl+B")));
    3 pMenu_->addSeparator();

  • 相关阅读:
    游戏开发系统功能(9)
    游戏开发创建游戏世界(8)
    游戏开发沟通和开会技巧(7)
    游戏开发策划工作(6)
    游戏开发了解测试工作(4)
    Django:学习笔记(9)——用户身份认证
    Django:学习笔记(8)——视图
    Django:学习笔记(7)——模型进阶
    Django:学习笔记(6)——模型
    Django:学习笔记(5)——会话
  • 原文地址:https://www.cnblogs.com/sld666666/p/1944554.html
Copyright © 2011-2022 走看看