对于 *nix 下的非 GUI 应用程序来说,什么是像样的事件库? (C++)

发布于 2024-08-09 01:44:49 字数 274 浏览 8 评论 0原文

首先,我现在正在使用Qt。然而,我希望程序最终能够在没有 GUI 环境的情况下运行,主要将图形方面留给配置。该程序大量使用 Qt 计时器和信号/槽,部分用于 QtScript。因此,如果我想让它成为非 GUI 可操作的,希望 Qt 的某些部分可以在没有 GUI 环境的情况下运行。如果没有,也许我会研究不同的 Javascript 实现,尽管 QtScript 非常方便地集成到 Qt 和 C++ 的 OO 结构中。首先,Qt 的某些部分可以在非 GUI 环境中使用吗?如果不能,那么对于事件和调度库还有哪些其他选择?最好是OO设计。

First, I'm using Qt at the moment. However, I want the program eventually able to run without a GUI environment, leaving the graphical aspects for configuration mainly. The program makes hefty use of Qt timers and signals/slots, partially for QtScript. So if I want to make it non-GUI operable, hopefully parts of Qt can run without a GUI environment. If not, maybe I'll look into a different Javascript implementation, although QtScript is very convenient how it integrates into Qt's and C++'s OO structure. First, can parts of Qt be used in a non-GUI environment, and if not what other choices are there as far as an events and scheduling library? Preferably OO design.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

穿越时光隧道 2024-08-16 01:44:49

如果您不使用 QtGui 模块,则不需要 GUI。 QtCore 等都可以正常工作。

If you don't use the QtGui module, you don't need a GUI. QtCore etc. will work just fine.

柏林苍穹下 2024-08-16 01:44:49

你有没有看过
Boost.Signals 库? (我自己没用过。)

Have you looked at the
Boost.Signals library? (I haven't used it myself.)

微凉 2024-08-16 01:44:49

libsigc++ 具有与 Qt 非常相似的信号和槽机制,尽管它是纯 C++(没有额外的预处理器)。它还可以与 GTK+ 的 C++ 绑定 gtkmm 一起使用。

也就是说,如果 Qt 要求您有 GUI,我会感到惊讶,所以您可能会坚持使用 Qt。

libsigc++ has a signals and slots mechanism very similar to Qt's though it's pure C++ (no extra pre-processor). It can also be used with gtkmm, a C++ binding for GTK+.

That said, I'd be surprised if Qt requires that you have a GUI, so you'll probably be able to stick with Qt.

糖果控 2024-08-16 01:44:49

libevent 可能就是你寻找。然而,这是在 C 语言中。

libevent API 提供了一种机制,用于在文件描述符上发生特定事件或达到超时后执行回调函数。此外,libevent还支持由于信号或定期超时而产生的回调。

libevent may be what you are looking for. This is in C, however.

The libevent API provides a mechanism to execute a callback function when a specific event occurs on a file descriptor or after a timeout has been reached. Furthermore, libevent also support callbacks due to signals or regular timeouts.

梦里人 2024-08-16 01:44:49

Poco项目提供了两个有趣的解决方案:

  • 通知中心:基于Cocoa/OpenStep的NSNotificationCenter
  • < a href="http://pocoproject.org/blog/?p=80" rel="nofollow noreferrer">活动和代表

Boost 信号 库也非常好,但它是少数需要构建和链接的 boost 库之一。

The Poco project offers two interesting solutions:

The Boost signals library is very nice too, but it's one of the few boost libraries that need to be built and linked with.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文