QT_关于自绘菜单项类QWidgetAction

来源:互联网 发布:最好的中国象棋软件 编辑:程序博客网 时间:2024/05/29 08:08

对于自绘菜单项,总的来说就是继承QWidgetAction类,然后重写它的虚函数createWidget().。

开始时,重写该函数后,菜单项怎么都显示不出来,debug各种调试后,才意识到一个很重要的信息,那就是重写

createWidget(QWidget* parent)函数的时候,这个parent参数很重要!终于显示出来了!!!!


自绘的菜单项控件一定要把parent参数指定为父指针!

比如:

QWidget* MyAction::createWidget(QWidget *parent)
{
    QSplitter* sp = new QSplitter(parent); //如果写成 QSplitter* sp = new QSplitter; 就无法显示!!!
    QLabel* lab = new QLabel;
    lab->setPixmap(QPixmap("big-info.png"));
    m_pEdit = new QLineEdit;
    m_pEdit->setPlaceholderText(QStringLiteral("请输入:"));
    sp->addWidget(lab);
    sp->addWidget(m_pEdit);
    return sp;
}

原创粉丝点击