C# python回调可以调用.NET方法吗?
我有一个BeagleBone黑色的运行Debian,带有一个480x272像素的cape(触摸屏)。我使用的是有线/无线接口,因为它有一个非常好的接口,终端用户可以轻松地设置各种网络配置 问题在于,最终用户将无法访问物理键盘,因此,为了输入wifi设置,他们将需要一个虚拟键盘 我的主要项目是基于单声道的(C),我有一个用(C)编写的虚拟键盘。我可以从其他C#项目文件中调用它,但无法从这个python模块中打开它 我通常通过以下方式调用C# python回调可以调用.NET方法吗?,c#,python,mono,pygtk,gtk#,C#,Python,Mono,Pygtk,Gtk#,我有一个BeagleBone黑色的运行Debian,带有一个480x272像素的cape(触摸屏)。我使用的是有线/无线接口,因为它有一个非常好的接口,终端用户可以轻松地设置各种网络配置 问题在于,最终用户将无法访问物理键盘,因此,为了输入wifi设置,他们将需要一个虚拟键盘 我的主要项目是基于单声道的(C),我有一个用(C)编写的虚拟键盘。我可以从其他C#项目文件中调用它,但无法从这个python模块中打开它 我通常通过以下方式调用wicd客户端: private void CallWicdD
wicd
客户端:
private void CallWicdDialaog()
{
proc流程=新流程
{
StartInfo=新流程StartInfo
{
FileName=“/usr/bin/wicd-client”,
Arguments=“-n”,
UseShellExecute=false,
重定向标准输出=false,
CreateNoWindow=true
}
};
proc.Start();
}
这将在本机Debian操作系统中启动python进程,而不是通过mono/C项目。除了这个虚拟键盘,我不需要wicd和我的mono项目之间的“通信”
wicd
项目在其guiutil.py
文件中钩住gtk焦点事件,如下所示:
class LabelEntry(gtk.HBox):
“”“左边是一个标签,右边是一个370像素宽的文本框。”“”
定义初始化(self,text):
...
self.entry.connect('focus-in-event',self.show_字符)
...
def show_字符(self,widget=None,event=None):
#当框具有焦点时,显示字符
“”“我想在这里挂接虚拟键盘”“”
如果self.auto\u隐藏\u文本和小部件:
self.entry.set_可见性(True)
我想做的是在show\u characters
定义中调用我的虚拟键盘
我该怎么做
- 有没有一种从python回调到mono的通信方式
- 有没有办法从mono向python注入回调
- 我是否需要用python重写基于GtkSharp的键盘,让Debian操作系统以本机方式处理一切
- 有没有其他虚拟键盘可以处理如此小的屏幕空间
- 有没有其他我没想到的解决办法
- 尝试设置C#键盘以返回可通过标准输出/输入解析的文本。然后,只需从python应用程序将fork()连接到键盘。它适用于bash,为什么不适用于此
- 在C#项目中编写一个小型udp服务器,并让它将输出发送到python应用程序。在内部环回上完成这一切,您不应该宣传开放端口李>
- 在启动时运行两个,并让两个都监听系统中断以进行控制切换
- Hmmm。这些系统集成问题从来都不容易解决。下面是一些我想看的东西
在启动键盘时。了解如何在终端中使用一条线路。一旦你有了它,你就可以算出控制流了
传输数据可能很有趣。首先想到的两件事是:
祝你好运 您可以将您的python代码移植到该应用程序,这应该允许双向调用,但您可能必须为您的目标环境构建IronPython 如果您可以为键盘提供一个C/C++接口,就可以将其用作扩展模块,这可能比直接将其移植到Python要省力
或者,您可以将键盘作为外部进程调用,并从子进程中使用管道。您可以使用键盘创建一个独立的GtkSharp应用程序,打印到标准输出,然后使用python运行它