Qt右击菜单建立

来源:互联网 发布:新款java小轮车 编辑:程序博客网 时间:2024/05/17 02:54

Qt中右击菜单的弹出式在contextMenuEvent中处理

void MyTreeView::contextMenuEvent(QContextMenuEvent*menu){

//设置右击菜单的字体 防止出现乱码

    QTextCodec* code = QTextCodec::codecForName("gb18030");
    QTextCodec::setCodecForTr(code);
    //设置右击菜单的菜单项,这些菜单项可以和其他菜单对象共有如我们客户端的主菜单   
    QAction action1(QObject::tr("添加","gb18030"),this);
    QAction action2(QObject::tr("删除","gb18030"),this);
        //将对应的菜单项与处理函数连接
    connect(&action2,SIGNAL(triggered()),this,SLOT(del()));
    connect(&action1,SIGNAL(triggered()),this,SLOT(add()));
    //生成右击菜单,将菜单项添加到菜单中
        //如果发现有时候右击的菜单不能显示出来,就算是执行了.exec函数也不能显示可以检查一下你的右击菜单对象    //是不是才contextMenuEvent函数中建立的,我第一次也是怎么都显示不出来,后来把对象的建立放倒函数里就好了       popMenu = new QMenu();
    popMenu->addAction(&action1);
    popMenu->addAction(&action2);
    //显示菜单
    popMenu->exec(this->cursor().pos());
}
	
				
		
原创粉丝点击