无法显示QT5自定义QWidget

无法显示QT5自定义QWidget,qt,qt5,Qt,Qt5,我使用QT添加了四个播放窗口,每个窗口都有一个右键单击菜单, 我想要效果: 代码: 但当我用自定义小部件替换小部件时,它不会显示: Video_play::Video_play(QWidget *parent) : QWidget(parent) { this->init(); } void Video_play::init() { Act_stop=new QAction(tr("停止预览"),this); Act_preview=new

我使用QT添加了四个播放窗口,每个窗口都有一个右键单击菜单, 我想要效果:

代码:

但当我用自定义小部件替换小部件时,它不会显示:

Video_play::Video_play(QWidget *parent) : QWidget(parent)
{
    this->init();
}


void Video_play::init()
{
    Act_stop=new QAction(tr("停止预览"),this);
    Act_preview=new QAction(tr("预览"),this);

    Act_cut1=new QAction(tr("全屏"),this);
    Act_cut4=new QAction(tr("切换4画面"),this);
    Act_cut8=new QAction(tr("切换8画面"),this);
    Act_cut16=new QAction(tr("切换16画面"),this);

    connect(Act_stop, SIGNAL(triggered()), this, SLOT(stop_preview()));
    connect(Act_preview, SIGNAL(triggered()), this, SLOT(action_preview()));

    connect(Act_cut1, SIGNAL(triggered()), this, SLOT(cut_1()));
    connect(Act_cut4, SIGNAL(triggered()), this, SLOT(cut_4()));
    connect(Act_cut8, SIGNAL(triggered()), this, SLOT(cut_8()));
    connect(Act_cut16, SIGNAL(triggered()), this, SLOT(cut_16()));
    this->setStyleSheet("QMenu {background-color:rgba(255,255,255,1);border:1px solid rgba(82,130,164,1);}QMenu::item:selected {background:rgba(82,130,164,1);border:1px solid rgba(82,130,164,1);}");
 }
 void Video_play::contextMenuEvent(QContextMenuEvent *event)
 {

    QCursor cur=this->cursor();
    QMenu *menu=new QMenu(this);

    menu->addAction(Act_preview);
    menu->addAction(Act_stop);
    menu->addAction(Act_cut1);
    menu->addAction(Act_cut4);
    menu->addAction(Act_cut8);
    menu->addAction(Act_cut16);
    menu->exec(cur.pos());
}
但是:


自定义小部件添加了以下方法来解决此问题

void CustomWidget::paintEvent(QPaintEvent *)
 {
     QStyleOption opt;
     opt.init(this);
     QPainter p(this);
     style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
 }
请回答您的问题:1)标题:Qt5自定义宽度“小部件”或“宽度”?(我不确定)2)请试着用文字描述你的问题。3.)我嵌入了这些图像(出于安全原因,禁止初学者使用),但它们看起来都与我一样,并没有帮助我澄清您的意图。(你可能在上传的时候有点混淆。)旁注:如果你只使用英语,那会有帮助。
void CustomWidget::paintEvent(QPaintEvent *)
 {
     QStyleOption opt;
     opt.init(this);
     QPainter p(this);
     style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
 }