zoukankan      html  css  js  c++  java
  • Qt Application Menu In Window and Mac

    Application Menu

    Application menu in different operator systems has different designed style. like Windows and Mac os, they are different.In the code, we can use different Macro ,eg:Q_OS_MAC and Q_OS_WIN

    #ifdef Q_OS_MAC
    void MainWindow::InitMenu()
    {
        QMenuBar* mBar = menuBar();
    
        QMenu* mApp   = new QMenu(tr("App"),this);
        QMenu* mFile  = new QMenu(tr("&File"),this);
    
        mBar->addMenu(mApp);
        mBar->addMenu(mFile);
    
        /** In Mac,We should to set action role */
        QAction* actAbout = new QAction(tr("&About"),this);
        actAbout->setMenuRole(QAction::AboutRole);
    
        QAction* actSetApp = new QAction(tr("&Preference..."),this);
        actSetApp->setMenuRole(QAction::PreferencesRole);
    
        mApp->addAction(actAbout);
        mApp->addAction(actSetApp);
    
        QAction* actOpen = new QAction(tr("&Open Video Files..."),this);
        mFile->addAction(actOpen);
    
        connect(actOpen,&QAction::triggered,_player,&Player::StOpen);
        connect(actSetApp,&QAction::triggered,this,&MainWindow::StShowSetDlg);
    }
    #else
    void MainWindow::InitMenu()
    {
        QMenuBar* mBar = menuBar();
    
        QMenu* mFile  = new QMenu(tr("&File"),this);
        QMenu* mSet   = new QMenu(tr("&Setting"),this);
        QMenu* mAbout = new QMenu(tr("&About"),this);
    
        QAction* actOpen = new QAction(tr("&Open Video Files..."),this);
        QAction* actExit = new QAction(tr("&Exit out"),this);
    
        mFile->addAction(actOpen);
        mFile->addSeparator();
        mFile->addAction(actExit);
    
        QAction* actSetApp = new QAction(tr("&Setting App..."),this);
        mSet->addAction(actSetApp);
    
        mBar->addMenu(mFile);
        mBar->addMenu(mSet);
        mBar->addMenu(mAbout);
    
        connect(actOpen,&QAction::triggered,_player,&Player::StOpen);
        connect(actExit,&QAction::triggered,this,[=](){close();});
        connect(actSetApp,&QAction::triggered,this,&MainWindow::StShowSetDlg);
    }
    #endif
    

  • 相关阅读:
    非循环单链表节点的操作
    链表每一个节点的数据类型该如何表示
    链表的定义、确定一个链表需要几个参数?
    typedef的用法
    连续存储数组的算法(包含数组倒置、冒泡排序……)
    跨函数使用内存案例
    malloc()动态分配内存概述
    结构体
    指针和数组
    C#基础知识之dnSpy反编译
  • 原文地址:https://www.cnblogs.com/zi-xing/p/8594799.html
Copyright © 2011-2022 走看看