我正在寻找一个预先存在的Django应用程序,为用户提供用户私人消息.我见过django-pm和django-messages,它们似乎都没有特别活跃的开发.真的没有什么吗?
我正在使用PySide管理一些硬件并执行一些相对简单的操作,具体取决于(例如)界面中的按钮点击.运行这些硬件的代码驻留在另一个线程中.为方便起见,对于所有这些硬件驱动程序,我添加了一个通用invoke_method
信号,以便UI组件可以使用
my_driver.invoke_method.emit('method_name', [arg, ...], {kwarg, ...})
Run Code Online (Sandbox Code Playgroud)
显然,这会直接访问其他线程中的信号属性....但我不确定这在GIL世界中是否一定正常.
如果这确实是一个太懒的解决方案 - 是否有任何其他很好的替代方案可以在任意线程中调用任意方法而不必在UI中连接到驱动程序中的另一个信号的特定于操作的信号?
我能想象,而不是用在访问不同的硬件的UI代码中的每个比特的信号-像do_invocation_driver_1
和do_invocation_driver_2
和连接这些到invoke_method
相应的驱动程序的信号.
我正在初始化一个简单的接口,NSTableView绑定到一个数组控制器(管理一个字典数组).我想在后台加载数组的内容(这是一个非常耗时的过程),每100或1000个元素更新表视图.我们的想法是界面可用且响应迅速.我无法弄清楚如何在之后触发更新/刷新.桌子仍然是空的.任何人都可以提供指针吗?
我目前的做法是:
// In init for my app controller. This seems to work well, but I've tried other methods here.
[self performSelectorInBackground:@selector(loadTable) withObject:nil];
- (void)loadTable {
tracks = [[NSMutableArray alloc] initWithCapacity:[masters count]];
// ... create each object one-by-one. Add it to tracks.
for (... in ...) {
[tracks addObject:newObject];
}
// Now I don't know what to do next. The table remains empty.
// Things I've tried (though possibly not in all combinations with the
// method above):
// 1. …
Run Code Online (Sandbox Code Playgroud)