在createWidget函数中定义的QSplitter不显示?

QWidget * MyAction::createWidget(QWidget * parent)
{
    if (parent->inherits("QMenu") || parent->inherits("QToolBar")) {
        QSplitter * splitter = new QSplitter(parent);
        QLabel * label = new QLabel;
        label->setText(tr("insert text: "));
        splitter->addWidget(label);
        splitter->addWidget(lineEdit);
        return splitter;
    }
    return 0;
}

函数定义如上,在调用MyAction时:

    MyAction * action = new MyAction;
    ui->mainToolBar->addAction(action);

图片描述

然而如果这样调用:

    MyAction * action = new MyAction;
    QMenu * editMenu = ui->menuBar->addMenu("edit(&E)");
    editMenu->addAction(action);

则生成的QSplitter无法显示图片描述

请问如何能够在菜单栏而不是工具栏中正常使用?
例子来自Qt creator快速入门第五章

阅读 3.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏