然而。。Qt 也是支持的。
Qt 的 signal/slot 是上层的包装。底层实际上也是事件机制。不信你阅读一下 QWidget 的:
paintEvent()
mouseEvent()
keyPressEvent()
timeEvent()
这些对应的就是你说的事件处理函数。
如果是子控件,也可以这样写:
private slots:
void on_button1_clicked();
on_ + 控件名 + 事件名
不用手动 connect().
Qt 提供了更多样的选择。signal/slot 其实是设计模式中观察者(事件订阅)模式的具体实现,可解耦,链式处理。比 delphi 简单的事件处理函数高级多了。
delphi
【 在 ooolinux 的大作中提到: 】
: Qt足够强大,类库也堪称好用,但是它为人称道的信号槽连接机制,比起Delphi的事件和事件处理函数就差了几条街了。
: VCL类库中事件就是一个函数指针,自然优美,这得益于Object Pascal语言的特性以及VCL的架构。
: 比如Button1的OnClick事件,被指定了Button1Click事件处理函数之后,当鼠标点击Button1时,经过Windows内核和VCL架构的消息处理与传递,最终调用了Button1Click函数,看起来就是这么简单。
: ...................
--
修改:hgoldfish FROM 27.152.53.*
FROM 27.152.53.*