thank you, but its not working.
Yes ContextMenuPolicy was set to CustomContextMenu in .ui file. I treid to do this in constructor but without success:
frmSettings
::frmSettings(QWidget *parent
){
ui.setupUi(this);
context
= new QMenu(this);
context->addAction("Add");
context->addAction("Delete");
ui.tableOptimizationVariables->setContextMenuPolicy(Qt::CustomContextMenu);
// connect(ui.tableOptimizationVariables, SIGNAL(customContextMenuRequested(QPoint* position)),frmSettings, SLOT(ProvideContexMenu(position)));
connect(ui.tableOptimizationVariables, SIGNAL(customContextMenuRequested(const QPoint&)), SLOT(ProvideContexMenu(const QPoint&)));
}
void frmSettings
::ProvideContexMenu(const QPoint* position
) {
context->exec(*position);
}
frmSettings::frmSettings(QWidget *parent)
: QDialog(parent)
{
ui.setupUi(this);
context= new QMenu(this);
context->addAction("Add");
context->addAction("Delete");
ui.tableOptimizationVariables->setContextMenuPolicy(Qt::CustomContextMenu);
// connect(ui.tableOptimizationVariables, SIGNAL(customContextMenuRequested(QPoint* position)),frmSettings, SLOT(ProvideContexMenu(position)));
connect(ui.tableOptimizationVariables, SIGNAL(customContextMenuRequested(const QPoint&)), SLOT(ProvideContexMenu(const QPoint&)));
}
void frmSettings::ProvideContexMenu(const QPoint* position)
{
context->exec(*position);
}
To copy to clipboard, switch view to plain text mode
Can somebody give me complete code (it shoud be couple of lines) for calling context menu? Is it diferent for different controls? Maybe some QTableWidget-specific stuff must be done?
//LATER ADDED TEXT
I tried to link contect menu to QLineEdit control (to see if default copy/cut/paste menu is invoked):
ui.tableOptimizationVariables->setContextMenuPolicy(Qt::CustomContextMenu);
ui.txtName->setContextMenuPolicy(Qt::CustomContextMenu);
connect(ui.tableOptimizationVariables, SIGNAL(customContextMenuRequested(const QPoint&)), SLOT(ProvideContexMenu(const QPoint&)));
connect(ui.txtName, SIGNAL(customContextMenuRequested(const QPoint&)), SLOT(ProvideContexMenu(const QPoint&)));
ui.tableOptimizationVariables->setContextMenuPolicy(Qt::CustomContextMenu);
ui.txtName->setContextMenuPolicy(Qt::CustomContextMenu);
connect(ui.tableOptimizationVariables, SIGNAL(customContextMenuRequested(const QPoint&)), SLOT(ProvideContexMenu(const QPoint&)));
connect(ui.txtName, SIGNAL(customContextMenuRequested(const QPoint&)), SLOT(ProvideContexMenu(const QPoint&)));
To copy to clipboard, switch view to plain text mode
So i lost "Copy/Cut/Paste/|/Select All" menu, which mean that context menu is set to custom? But when i debugged I noticed that slot void frmSettings::ProvideContexMenu(const QPoint* position) is never entered. What am I doing wrong?
Bookmarks