我在 Mac OS X (Snow Leopard) 下使用 QAction 使 QMenuBar 显示 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 类接口(interface):
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();
}
有什么想法为什么它不会显示在菜单栏上吗? 谢谢大家。
最佳答案
我解决了这个问题。
似乎已经有一个名为“退出”的操作,它是默认应用程序菜单的一部分(每个 Mac OS X GUI 应用程序都有这样的菜单)。这导致我尝试添加另一个名为“退出”的操作,该操作会被 Qt 或 Window Server 忽略。
只需将操作重命名为“关闭”即可解决问题。
关于macos - Qt4:QMenuBar/QMenu 在 Mac OS X 上不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2460036/