各位大佬,请问有没有碰到在QTableWidget右键菜单时,异常退出并且菜单也没有出现呢?
如下是我的代码,还请各位大佬指点一下到底哪里错了,在此不胜感激!
myWidget::myWidget(QWidget *parent)
    : QWidget(parent)
{
    m_pTableWidget = NULL;
    initUi();
}
void myWidget::initUi()
{
        m_pTableWidget = new QTableWidget(this);
    m_pTableWidget->resize(this->width()*90/100, this->height()*45/100);
    m_pTableWidget->move(this->width()*5/100, this->height()*10/100);
    //设置表格属性
    m_pTableWidget->setColumnCount(4);
    m_pTableWidget->horizontalHeader()->setVisible(false);
    m_pTableWidget->verticalHeader()->setVisible(false);
    m_pTableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
    m_pTableWidget->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch);
    m_pTableWidget->horizontalHeader()->setStretchLastSection(true);
    m_pTableWidget->verticalHeader()->setDefaultSectionSize(10);
    m_pTableWidget->setFrameShape(QFrame::NoFrame);
    m_pTableWidget->setFocusPolicy(Qt::NoFocus);
    m_pTableWidget->setShowGrid(false);
    m_pTableWidget->setSelectionMode(QAbstractItemView::ExtendedSelection);
    m_pTableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
    m_pTableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
    m_pTableWidget->setStyleSheet("selection-background-color:lightblue;"); //設置選中背景色
    m_pTableWidget->horizontalHeader()->setStyleSheet("QHeaderView::section{background:skyblue;}"); //設置表頭背景色
    m_pTableWidget->horizontalHeader()->setHighlightSections(false);
    m_pTableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);//自适应无效
    //m_pTableWidget->setItemDelegate(new myItemDelegate2(0));
    this->stackUnder(m_pTableWidget);
    m_pTableWidget->setColumnCount(4);
    m_pTableWidget->setRowCount(2);
    for (int row = 2; row < m_pTableWidget->rowCount(); ++row)//隐藏2行后的行
        m_pTableWidget->setRowHidden(row, true);
    QFont font;
    font.setFamily("SimHei");
    font.setPixelSize(14);
    font.setBold(false);
    QTableWidgetItem *pTitleText = new QTableWidgetItem;
    pTitleText->setFont(font);
    pTitleText->setText(TABLE_ENCRYPT_TIP_INFO);
    m_pTableWidget->setSpan(0, 0, 2, 4);
    m_pTableWidget->setItem(0, 0, pTitleText);
    connect(m_pTableWidget, SIGNAL(itemDoubleClicked(QTableWidgetItem *)), this, SLOT(slotItemDoubleClicked(QTableWidgetItem*)));
    m_pMainLayout = new QVBoxLayout;//(this);
    m_pMainLayout->addWidget(m_pTableWidget);
    setLayout(m_pMainLayout);
    this->m_pTableWidget->setAcceptDrops(false);
    this->setAcceptDrops(true);
    
    //创建快捷键菜单:此处添加会点击右键,出现异常退出。
    this->m_pTableWidget->setContextMenuPolicy(Qt::CustomContextMenu);
    m_pMenu = new QMenu();//(this);
    connect(this, &myWidget::customContextMenuRequested, this, &myWidget::slotCustomContextMenuRequested);
}
void myWidget::slotCustomContextMenuRequested(const QPoint &pos)
{
    initAction();
    m_pMenu->exec(mapToGlobal(pos));
}
void  myWidget::initAction()
{
    QAction  *actPast = new  QAction("粘贴");
    m_pMenu->addAction(actPast);
    connect(actPast, SIGNAL(triggered()), this, SLOT(slotActionPast()));
    m_pMenu->addSeparator();
}