• 5453阅读
  • 2回复

[原创]QT5杂谈(五)------Qt中向系统发送按键事件的方法 [复制链接]

上一主题 下一主题
离线青春岁月
 

只看楼主 倒序阅读 楼主  发表于: 2014-04-29
1.定义一个事件,以QKeyEvent为例。
QKeyEvent *pageUp;
pageUp = new QKeyEvent(QEvent::KeyPress,Qt::Key_PageUp,Qt::NoModifier,tr("pageup"),0);

2.将这个事件发送给指定的窗口,使用sendEvent(QObject * receiver, QEvent * event) 函数。
QApplication::sendEvent(m_pListWidget,pageUp);

利用这个方法,我们可以实现QListWidget 的上下翻页。

go!   go!  go!  go!
离线dbzhang800

只看该作者 1楼 发表于: 2014-04-29
当用 sendEvent时,事件一般都是放在stack 而不是heap中,不然还需要自己delete。

当用postEvent时,事件必须放置到heap中,事件循环队列会负责delete它。
离线青春岁月

只看该作者 2楼 发表于: 2014-04-29
回 dbzhang800 的帖子
dbzhang800:当用 sendEvent时,事件一般都是放在stack 而不是heap中,不然还需要自己delete。
当用postEvent时,事件必须放置到heap中,事件循环队列会负责delete它。 (2014-04-29 16:54) 

那正确的发送方式是怎么样的?不太懂?
go!   go!  go!  go!
快速回复
限100 字节
 
上一个 下一个