QT右键菜单、右键下拉菜单、各控件响应右键菜单方法简介 【百度空间】
2011-06-22 22:38
453 查看
http://apps.hi.baidu.com/share/detail/24855341
QT右键菜单、右键下拉菜单、各控件响应右键菜单方法简介(持续添加更新中......
QT主窗体右键弹出下拉菜单方法(我的主窗体的类名是CGuiMainwindow):
void CGuiMainwindow::contextMenuEvent(QContextMenuEvent* e)
{
QMenu *menu = new QMenu();
menu->addSeparator();
menu->addSeparator();
menu->addAction(Act_Maxsize);
menu->addSeparator();
menu->addSeparator();
menu->addAction(Act_Normal);
menu->addSeparator();
menu->addSeparator();
menu->exec(e->globalPos());
delete menu;
}
其中Act_Maxsize和Act_Normal是两个QAction 对象指针。我的定义和初始化如下:
QAction* Act_Maxsize;
QAction* Act_Normal;
Act_Maxsize = new QAction(tr("XML"), this);
Act_Maxsize->setIcon(QIcon("Resources/logo.png"));
Act_Normal = new QAction(tr("SHOW"), this);
Act_Normal->setIcon(QIcon("Resources/logo.png"));
connect(Act_Maxsize, SIGNAL(triggered()), this, SLOT(ADDChange()));
connect(Act_Normal, SIGNAL(triggered()), this, SLOT(XMLChange()));
油槽函数是用来响应右键菜单的点击动作。
QT内置控件添加右键菜单方法(以QTreeWidget添加右键菜单为例):
定义油槽
connect(moduleTree,SIGNAL(itemPressed(QTreeWidgetItem *, int)),this,SLOT(SlotItemClicked(
QTreeWidgetItem *, int)));
实现槽函数
void CGuiMainwindow::SlotItemClicked(QTreeWidgetItem *item, int column)
{
if (qApp->mouseButtons() == Qt::LeftButton)
{ return; }
if (qApp->mouseButtons() == Qt::RightButton)
{ if (item->childCount() > 0) { return; }
ShowMenu();
}
}
实现菜单显示功能函数:
void CGuiMainwindow::ShowMenu()
{
QPoint pos;
QMenu menu(moduleTree);
QIcon myIcon("Resources/logo.png");
menu.addAction(myIcon,tr("菜单_1"));
menu.addAction(myIcon,tr("菜单_2"));
menu.addAction(myIcon,tr("菜单_3"));
menu.addAction(myIcon,tr("菜单_4"));
menu.addAction(myIcon,tr("菜单_5"));
menu.addAction(myIcon,tr("菜单_6"));
menu.exec(QCursor::pos());
}
QT右键菜单、右键下拉菜单、各控件响应右键菜单方法简介(持续添加更新中......
QT主窗体右键弹出下拉菜单方法(我的主窗体的类名是CGuiMainwindow):
void CGuiMainwindow::contextMenuEvent(QContextMenuEvent* e)
{
QMenu *menu = new QMenu();
menu->addSeparator();
menu->addSeparator();
menu->addAction(Act_Maxsize);
menu->addSeparator();
menu->addSeparator();
menu->addAction(Act_Normal);
menu->addSeparator();
menu->addSeparator();
menu->exec(e->globalPos());
delete menu;
}
其中Act_Maxsize和Act_Normal是两个QAction 对象指针。我的定义和初始化如下:
QAction* Act_Maxsize;
QAction* Act_Normal;
Act_Maxsize = new QAction(tr("XML"), this);
Act_Maxsize->setIcon(QIcon("Resources/logo.png"));
Act_Normal = new QAction(tr("SHOW"), this);
Act_Normal->setIcon(QIcon("Resources/logo.png"));
connect(Act_Maxsize, SIGNAL(triggered()), this, SLOT(ADDChange()));
connect(Act_Normal, SIGNAL(triggered()), this, SLOT(XMLChange()));
油槽函数是用来响应右键菜单的点击动作。
QT内置控件添加右键菜单方法(以QTreeWidget添加右键菜单为例):
定义油槽
connect(moduleTree,SIGNAL(itemPressed(QTreeWidgetItem *, int)),this,SLOT(SlotItemClicked(
QTreeWidgetItem *, int)));
实现槽函数
void CGuiMainwindow::SlotItemClicked(QTreeWidgetItem *item, int column)
{
if (qApp->mouseButtons() == Qt::LeftButton)
{ return; }
if (qApp->mouseButtons() == Qt::RightButton)
{ if (item->childCount() > 0) { return; }
ShowMenu();
}
}
实现菜单显示功能函数:
void CGuiMainwindow::ShowMenu()
{
QPoint pos;
QMenu menu(moduleTree);
QIcon myIcon("Resources/logo.png");
menu.addAction(myIcon,tr("菜单_1"));
menu.addAction(myIcon,tr("菜单_2"));
menu.addAction(myIcon,tr("菜单_3"));
menu.addAction(myIcon,tr("菜单_4"));
menu.addAction(myIcon,tr("菜单_5"));
menu.addAction(myIcon,tr("菜单_6"));
menu.exec(QCursor::pos());
}
相关文章推荐
- QT右键菜单、右键下拉菜单、各控件响应右键菜单方法简介 【百度空间】
- QT右键菜单、右键下拉菜单、各控件响应右键菜单方法简介(转)
- Qt添加右键菜单的方法
- QT Qtreewidget操作 右键菜单响应等
- linux下QT界面的treewiget控件的右键菜单的实现
- WPF中ContextMenu(右键菜单)使用Command在部分控件上默认为灰色的处理方法
- 如何在list控件中响应右键弹出菜单中的菜单事件
- WPF中ContextMenu(右键菜单)使用Command在部分控件上默认为灰色的处理方法
- QT主窗体右键弹出下拉菜单方法
- Qt使用IE控件和屏蔽页面右键菜单
- VC在指定控件中添加右键菜单的两种方法
- Qt实现右键菜单的五种方法!(以QListWidget为例)
- C#Winform中DataGridView控件下的右键菜单事件获取行值方法
- Qt QtreeWidget树形控件右键菜单
- Win7鼠标右键没有响应无法弹出菜单的解决方法
- Windows系统中对弹出菜单、下拉菜单、右键菜单截图的方法
- MFC 右键响应菜单的方法
- VC在指定控件中添加右键菜单的两种方法
- c#判断右键菜单(ContextMenuStrip)是从哪个控件弹出来的方法
- Qt创建右键菜单的方法