• 7336阅读
  • 6回复

鼠标双击事件怎样使用 [复制链接]

上一主题 下一主题
离线rickyguo
 

只看楼主 倒序阅读 楼主  发表于: 2007-08-11
— 本帖被 XChinux 执行加亮操作(2007-08-12) —
qt中提供了一个双击事件void QWidget::mouseDoubleClickEvent ( QMouseEvent * e ) [虚 保护],我不理解的是该如何使用它.有没有人用过,给个例子!!!!
离线XChinux

只看该作者 1楼 发表于: 2007-08-11
从你要用双击事件的那个部件对应的类(比方称之为BaseClass_T)来派生一个类,比方称为Class_T,然后在这个新类中,实现mouseDoubleEvent()这个虚函数,比如,我们:
void Class_T::mouseDoubleEvent(QMouseEvent *e)
{
    if (e->modifiers() & Qt::ControlModifier)
    {
        // do your action
      e->accept(); // 如果就忽略,就调用e->ignore();
    }
  else // 如果不是,则按默认方法处理
  {
      BaseClass_T::mouseDoubleClickEvent(e);
  }
}
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线rickyguo

只看该作者 2楼 发表于: 2007-08-11
谢谢你!!!!
我现在还有问题要麻烦你,我想实现双击子窗口时,子窗口的大小变为父窗口的大小.我的想法是得到父窗口的宽和高,然后再用resize()改变子窗口.感觉思路没错,怎么就不能实现呢?
[ 此贴被rickyguo在2007-08-11 17:08重新编辑 ]
离线XChinux

只看该作者 3楼 发表于: 2007-08-12
看看代码。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线rickyguo

只看该作者 4楼 发表于: 2007-08-12
我用单击可以实现,每单击一次就发一个信号,然后用槽接收改变.可我想用双击实现啊!!!你给的的例子中if (e->modifiers() & Qt::ControlModifier)这句有什么作用,在我这报错.我用的是qt3
离线XChinux

只看该作者 5楼 发表于: 2007-08-12
上面的例子是Qt4的。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线rickyguo

只看该作者 6楼 发表于: 2007-08-12
实现双击改变了,我只是在单击基础上添加了双击事件就可以了.
快速回复
限100 字节
 
上一个 下一个