qt学习笔记:自定义右键菜单(QTableWidget、QTextEdit等)

qt学习笔记:自定义右键菜单(QTableWidget、QTextEdit等)

PURPOSE:使用QT软件写GUI时需要自定义右键菜单内容

写在前面的话:在写交互界面的时候,需要给文本框(QTextEdit)或者表格框(QTableEdit)自定义右键下拉菜单的一些功能。QT本身给这些菜单自定义了指定功能(undo, paste, cancel, selectall, etc),想修改的时候搜了一大堆东西,然而发现都没有什么用,最后综合了一些blog定义Menu的方法终于改好了

涉及到的class:
- QTextEdit
- QTableWidget
- QMenu
- QPoint
- QAction
- QCursor


代码块

此处只给出QTextEdit部分代码,别的可以类似写出
头文件myText.h略,以下是myText.cpp:

myText::myText(QWidget *parent /*= 0*/) : QWidget(parent)
{   
    showText = new QTextEdit();
    showText->setContextMenuPolicy(Qt::CustomContextMenu);
    connect(showText, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(slot_textmenu(QPoint)));
}

//自定义下拉菜单
void myText::slot_textmenu(QPoint){
    QMenu *menu = new QMenu;
    //自定义action
    QAction *action = new QAction("添加到文本",showText);
    connect(action, SIGNAL(triggered(bool)), this, SLOT(addtext()));
    //添加action到menu
    menu->addAction(action);
    menu->move (cursor().pos());
    menu->show();
}

//action“添加到文本”对应操作
void myText::addText()
{
}

你可能感兴趣的:(QT)