首页| 论坛| 消息

标题:QTableWidget怎么在没有数据的时候点出右键菜单
作者:kennethwei
日期:2018-01-20 10:57
内容:

我在QTableWidget表格里,右键弹出菜单有新增、修改、删除这三个功能
菜单是在 QTableWidget 的 customContextMenuRequested 中写的
代码如下
void Dialog::on_tableWidget_customContextMenuRequested(const QPoint &pos)
{
Q_UNUSED(pos);
QMenu menu;
menu.addAction(ui->actNew);
menu.addAction(ui->actModify);
menu.addAction(ui->actDelete);
menu.exec(QCursor::pos());
}
如果表格中有数据时,没有问题,然后我把数据全部删除后,发现点不出右键菜单了
[font=Helvetica, Tahoma, A ..


#1 [hailler 01-22 19:27]
我是用 tableView实现的。
在初始化是定义
m_tableView->setContextMenuPolicy(Qt::CustomContextMenu);
//右键菜单在tableview才有效
connect(m_tableView,SIGNAL(customContextMenuRequested(const QPoint &)),this,SLOT(slotTableViewMenu(const QPoint&)));
在函数中实现
void MainWindow::slotTableViewMenu(QPoint postion)
{
Q_UNUSED(postion);
QModelIndex index=m_tableView->currentIndex();
//qDebug()setText(QString("添加土层"));
action_deleteRow->setText(QString("删除土层"));
pop_menu->addAction(action_insertRow);
pop_menu->addAction(action_appendRow);
pop_menu->addAction(action_deleteRow);
connect(action_insertRow,SIGNAL(triggered()),this,SLOT(on_insertBtn_clicked()));
connect(action_appendRow,SIGNAL(triggered()),this,SLOT(on_addBtn_clicked()));
connect(action_deleteRow,SIGNAL(triggered()),this,SLOT(on ..
#2 [hailler 01-22 19:31]
QTableWidget 这类用起来虽然简单,可是功能不够强大,偶尔用用。
建议学习一下 view model delegate 模式。
#3 [kennethwei 01-24 19:20]
谢谢

回复 发表
主题 版块