【问题标题】:Qt4: QMenuBar/QMenu doesn't show up on Mac OS XQt4:QMenuBar/QMenu 不显示在 Mac OS X 上
【发布时间】:2010-03-17 05:15:17
【问题描述】:

在 Mac OS X (Snow Leopard) 下,我很难让 QMenuBar 显示带有 QAction 的 QMenu。

这是我用于创建菜单的代码:

void ClientWindow::setUpMenu ()
{
   QMenu * file = menuBar()->addMenu("&File");
   QAction * quit = new QAction("&Quit", this);
   file->addAction(quit);

   connect(quit, SIGNAL(triggered()), this, SLOT(quit()));
}

这里是ClientWindow类接口:

class ClientWindow : public QMainWindow
{
    public:
        ClientWindow (QWidget * parent = 0);
        void setUpMenu ();
};

这是我的 main() 方法:

int main (int argc, char * argv[])
{
    QApplication app(argc, argv);
    ClientWindow window;

    window.setUpMenu();
    window.show();

    return app.exec();
}

任何想法为什么它不会显示在菜单栏上? 谢谢大家。

【问题讨论】:

    标签: macos qt4


    【解决方案1】:

    我解决了这个问题。

    似乎已经有一个名为“退出”的操作,它是默认应用程序菜单的一部分(每个 Mac OS X GUI 应用程序都有这样的菜单)。这导致我尝试添加另一个名为“Quit”的操作被 Qt 或 Window Server 忽略。

    只需将操作重命名为“关闭”即可解决问题。

    【讨论】:

      【解决方案2】:

      一些菜单点会自动映射到 mac osx 原生菜单:

      http://doc.trolltech.com/4.6/mac-differences.html#menu-bar

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多