【发布时间】:2022-01-06 13:49:22
【问题描述】:
基于 fatmimin hello world 示例,我在界面中添加了一个属性:
<property name="Sputulant" type="i" access="readwrite"/>
make gen 做它的事,产生两个调用的函数:
min_min_bus_gdbus_set_sputulant()
min_min_bus_gdbus_get_sputulant()
我没有在 server.c 中添加任何代码来“连接”这个属性(就像 Hello World 方法一样,使用 g_signal_connect())
当从客户端调用这些时,只有 get 函数起作用。我无法设置值。
使用 gdbus 工具确实有效:
gdbus call -e -d com.fatminmin -o /com/fatminmin/GDBUS -m org.freedesktop.DBus.Properties.Set "com.fatminmin.GDBUS" "Sputulant" "<123>"
我已经研究了好几天了,找不到任何属性示例代码或任何其他建议,那么我在这里做错了什么?
提前致谢
【问题讨论】:
-
从客户端使用它是可行的:``` con = g_bus_get_sync(G_BUS_TYPE_SESSION, NULL, &error);结果= g_dbus_connection_call_sync(con,“com.fatminmin”,“/com/fatminmin/GDBUS”,“org.freedesktop.DBus.Properties”,“设置”,g_variant_new(“(ssv)”,“com.fatminmin.GDBUS” , "Sputulant", g_variant_new("i", 235)), NULL, G_DBUS_CALL_FLAGS_NONE, -1, NULL, &error); g_object_unref(con); ```
标签: properties gdbus