我有一个运行 Linux 的类似 Raspberry Pi 的设备,连接到自定义打印机。还有一个 LCD 触摸屏,用户可以用来与打印机交互(选择文件、配置打印机、打印等)。
打印机 Controller 是用 C# 编写的,因此我们在 Linux 内核之上运行 Mono 来处理打印机。
LCD 屏幕是用 Gtk# 编写的,因为我们希望使用 Gtk 作为选择的 UI 层,因此它与我们的 C# 代码交互。问题是 Gtk# 绑定(bind)最多只能达到 2.12 ,并且有 2.14 及更高版本(甚至 3.x)中我们需要的功能。
由于设备运行的是 Linux,有没有办法使用基于 C++ 或 Python 的 Gtk 绑定(bind),然后在 Gtk 和 C# 之间传递信号?我需要将来自打印机的输入(如打印状态)发送到处理屏幕的 Gtk,并将来自屏幕的输入(如“打印所选文件”)从 Gtk 发送回打印机。
最佳答案
建议:
运行系统范围(或用户)的 dbus 守护进程。通过 dbus 互连 – gdbus (just a server example和 dbus-sharp .
我建议你选择带有 gobject 内省(introspection)(而不是包装器的东西!)的 C 或 python,因为它们通常比 gtkmm(它“只是”将 gtk+ 包装到类结构中)更好地维护。
关于python - Linux 上 Gtk 与 Mono 的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20789225/