16,816
社区成员




bool MyToolBox::eventFilter(QObject *watched, QEvent *event)
{
if(event->type() == QEvent::MouseButtonPress)//如果是鼠标按键信号
{
int i = watched->objectName().toInt();
qDebug()<<"clicked";
child[i]->hide();
child[i]->showNormal();//将toolbtn下对应的child显示到屏幕
}
return QToolBox::eventFilter(watched, event);//其他信号交给父类进行默认处理
}
bool MyToolBox::eventFilter(QObject *watched, QMouseEvent *event)
{
if(event->button()==Qt::LeftButton)
{
int i=watched->objectName().toInt();
qDebug()<<"clicked";
child[i]->hide();
child[i]->showNormal();
}
else if(event->button()==Qt::RightButton)
{
_menu=new QMenu();
_menu->addAction(QString().fromLocal8Bit("&查看用户信息"));
}
return QToolBox::eventFilter(watched,event);
}
bool MyToolBox::eventFilter(QObject *watched, QEvent *event)
{
if(event->type()==QEvent::MouseButtonPress)
{
QMouseEvent *ms=static_cast<QMouseEvent*>(event);
if(ms->button()==Qt::LeftButton)
{
int i=watched->objectName().toInt();
qDebug()<<"left clicked";
child[i]->hide();
child[i]->showNormal();
}
else if(ms->button()==Qt::RightButton)
{
//右键显示菜单失败
_menu=new QMenu(this);
_menu->addAction(QString().fromLocal8Bit("&查看用户信息"));
qDebug()<<"right clicked";
}
}
return QToolBox::eventFilter(watched,event);
}
谢谢你的回复!现在改成这样左键点击正常了,不过右键点击出不来菜单。。[/quote]
右键菜单出不来但是能打印出right clicked[/quote]
你这只是创建菜单,添加action到菜单,并没有要求显示。[/quote]
bool MyToolBox::eventFilter(QObject *watched, QEvent *event)
{
if(event->type()==QEvent::MouseButtonPress)
{
QMouseEvent *ms=static_cast<QMouseEvent*>(event);
if(ms->button()==Qt::LeftButton)
{
int i=watched->objectName().toInt();
qDebug()<<"left clicked";
child[i]->hide();
child[i]->showNormal();
}
else if(ms->button()==Qt::RightButton)
{
//右键显示菜单失败
_menu=new QMenu(this);
_menu->addAction((QString().fromLocal8Bit("&查看用户信息")));
_menu->exec(QCursor::pos());
}
}
return QToolBox::eventFilter(watched,event);
}
恩,改成这样好了。谢谢啊bool MyToolBox::eventFilter(QObject *watched, QEvent *event)
{
if(event->type()==QEvent::MouseButtonPress)
{
QMouseEvent *ms=static_cast<QMouseEvent*>(event);
if(ms->button()==Qt::LeftButton)
{
int i=watched->objectName().toInt();
qDebug()<<"left clicked";
child[i]->hide();
child[i]->showNormal();
}
else if(ms->button()==Qt::RightButton)
{
//右键显示菜单失败
_menu=new QMenu(this);
_menu->addAction(QString().fromLocal8Bit("&查看用户信息"));
qDebug()<<"right clicked";
}
}
return QToolBox::eventFilter(watched,event);
}
谢谢你的回复!现在改成这样左键点击正常了,不过右键点击出不来菜单。。[/quote]
右键菜单出不来但是能打印出right clicked[/quote]
你这只是创建菜单,添加action到菜单,并没有要求显示。[/quote]
bool MyToolBox::eventFilter(QObject *watched, QEvent *event)
{
if(event->type()==QEvent::MouseButtonPress)
{
QMouseEvent *ms=static_cast<QMouseEvent*>(event);
if(ms->button()==Qt::LeftButton)
{
int i=watched->objectName().toInt();
qDebug()<<"left clicked";
child[i]->hide();
child[i]->showNormal();
}
else if(ms->button()==Qt::RightButton)
{
//右键显示菜单失败
_menu=new QMenu(this);
_menu->addAction((QString().fromLocal8Bit("&查看用户信息")));
_menu->exec(QCursor::pos());
}
}
return QToolBox::eventFilter(watched,event);
}
恩,改成这样好了。谢谢啊bool MyToolBox::eventFilter(QObject *watched, QEvent *event)
{
if(event->type()==QEvent::MouseButtonPress)
{
QMouseEvent *ms=static_cast<QMouseEvent*>(event);
if(ms->button()==Qt::LeftButton)
{
int i=watched->objectName().toInt();
qDebug()<<"left clicked";
child[i]->hide();
child[i]->showNormal();
}
else if(ms->button()==Qt::RightButton)
{
//右键显示菜单失败
_menu=new QMenu(this);
_menu->addAction(QString().fromLocal8Bit("&查看用户信息"));
qDebug()<<"right clicked";
}
}
return QToolBox::eventFilter(watched,event);
}
谢谢你的回复!现在改成这样左键点击正常了,不过右键点击出不来菜单。。[/quote]
右键菜单出不来但是能打印出right clicked[/quote]
你这只是创建菜单,添加action到菜单,并没有要求显示。bool MyToolBox::eventFilter(QObject *watched, QEvent *event)
{
if(event->type()==QEvent::MouseButtonPress)
{
QMouseEvent *ms=static_cast<QMouseEvent*>(event);
if(ms->button()==Qt::LeftButton)
{
int i=watched->objectName().toInt();
qDebug()<<"left clicked";
child[i]->hide();
child[i]->showNormal();
}
else if(ms->button()==Qt::RightButton)
{
//右键显示菜单失败
_menu=new QMenu(this);
_menu->addAction(QString().fromLocal8Bit("&查看用户信息"));
qDebug()<<"right clicked";
}
}
return QToolBox::eventFilter(watched,event);
}
谢谢你的回复!现在改成这样左键点击正常了,不过右键点击出不来菜单。。[/quote]
右键菜单出不来但是能打印出right clickedbool MyToolBox::eventFilter(QObject *watched, QEvent *event)
{
if(event->type()==QEvent::MouseButtonPress)
{
QMouseEvent *ms=static_cast<QMouseEvent*>(event);
if(ms->button()==Qt::LeftButton)
{
int i=watched->objectName().toInt();
qDebug()<<"left clicked";
child[i]->hide();
child[i]->showNormal();
}
else if(ms->button()==Qt::RightButton)
{
//右键显示菜单失败
_menu=new QMenu(this);
_menu->addAction(QString().fromLocal8Bit("&查看用户信息"));
qDebug()<<"right clicked";
}
}
return QToolBox::eventFilter(watched,event);
}
谢谢你的回复!现在改成这样左键点击正常了,不过右键点击出不来菜单。。