我正在用python写一个音乐播放器,用cli使用urwid.我打算将当前播放列表放在一个simpleListWalker中,由列表框包装,然后是列,一堆,最后是一个帧.
如何用其他内容替换此列表框(或simpleListWalker)的全部内容?
相关代码:
class mainDisplay(object):
...
def renderList(self):
songList = db.getListOfSongs()
songDictList = [item for item in songList if item['location'] in
commandSh.currentPlaylists[commandSh.plyr.currentList]]
self.currentSongWidgets = self.createList(songDictList)
self.mainListContent = urwid.SimpleListWalker([urwid.AttrMap(w, None,
'reveal focus') for w in self.currentSongWidgets])
def initFace(self):#this is the init function that creates the interface
#on startup
...
self.scanPlaylists()
self.renderList()
self.mainList = urwid.ListBox(self.mainListContent)
self.columns = urwid.Columns([self.mainList, self.secondaryList])
self.pile = urwid.Pile([self.columns,
("fixed", 1, self.statusDisplayOne),
("fixed", 1, self.statusDisplayTwo),
("fixed", 1, self.cmdShInterface)], 3)
self.topFrame = urwid.Frame(self.pile)
Run Code Online (Sandbox Code Playgroud)
完整代码:http://github.com/ripdog/PyPlayer/tree/cli - 检查main.py是否有接口代码.
代码目前处于非常糟糕的状态,我只编程了两个月.我们非常感谢您对代码风格,布局或任何其他提示的任何建议.
情况:
我想从stdin
控制台获取密码- 而不回显用户输入的内容.是否有类似getpasswd
Go的功能?
我尝试了什么:
我尝试过使用syscall.Read
,但它回应了所输入的内容.
好吧,我试图从现有阵列中获取一个子数组,我只是不知道该怎么做.在我的例子中,我有一个非常大的数组,但我想从数组的最后5个元素创建一个数组.
我所谈论的一个例子是:
int array1 = {1,2,3,...99,100};
int array2[5] = array1+95;
Run Code Online (Sandbox Code Playgroud)
我知道这是不正确的,但我在纠正它时遇到了一些麻烦.我想在array1中获取元素96到100并将它们放入array2但我不想复制数组.我只想让array2从96元素开始,这样array1 [96]和array2 [0]将指向同一个位置.
我正在为另一个程序编写一个插件,该程序使用本机程序打开一系列文件以从中提取一些数据.我遇到的一个问题是该过程需要很长时间,我想保持用户界面不挂.另外,我还想让用户在完成之前取消该过程.在过去,我使用后台工作者来处理这类事情,但在这种情况下,我认为BackgroundWorker不会起作用.
要通过API创建插件,我使用的可以通过继承IAPICommand接口来创建自定义命令.该接口包括Execute(应用程序app)方法.然后实例化该类,当用户在程序中唤起自定义命令时,程序将调用Execute()方法.
Execute()方法在调用时传递对当前Application对象的引用,并且该应用程序对象用于打开文件以从中提取数据.但是,应用程序实例无法在原始Execute()线程之外的线程请求时打开文档.
因此,通常UI将存在于主线程上,并且将在辅助线程上执行耗时的数据提取.但是,在这种情况下,必须在主线程上执行数据提取,并且我需要为UI创建辅助线程.
这是代码的精简版本.
class MyCommand:IAPICommand
{
public void Execute(Application app) // method from IAPICommand
{
Thread threadTwo= new Thread(ShowFormMethod);
threadTwo.Start();
}
public void ProcessWidget(Widget w, Application app)
{
//uses an App to work some magic on C
//app must be called from the original thread that called ExecuteCommand()
}
//method to open custom form on a seperatethread
public void ShowFormMethod()
{
MyForm form = new MyForm();
form.ShowDialog();
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个流程图,显示了我认为这应该最终起作用的方式.
alt text http://dl.dropbox.com/u/113068/SOMLibThreadingDiagram.jpg
我希望用户能够在site.com/myNameHere上找到个人资料页面.Rails查找名为"myNameHere"的控制器.是否可以设置routes.rb,以便在找不到控制器时,"myNameHere"作为参数发送到另一个控制器?
任何人都可以帮我设置Python以在Wampserver上运行.从我到目前为止所读到的内容,你需要结合使用Wampser,Python,mod_pyhton和Apache http.conf文件进行调整.我已经尝试过但我相信我在版本方面存在冲突.有没有人知道可以工作的版本的组合,以便我可以使用我的wampserver进行一些本地python开发?非常感谢下载链接.
我当前的配置:Wampserver 2.0c => Apache版本:2.2.8,PHP版本:5.2.6,MySQL版本:5.0.51b
如何将测量值从12.5英尺转换为12英尺6英尺?如何在乘以12时创建仅读取小数位的第二个数字?
现在我有两个Measurement01使用其他变量和一些数学来得到我的小数位.我用farf.setText(Measurement01 +""+"ft")将它发送到textview;
任何帮助,将不胜感激!
我有一个函数,它获取一些位图数据并从中返回一个UIImage*.它看起来像这样:
UIImage * makeAnImage()
{
unsigned char * pixels = malloc(...);
// ...
CGDataProviderRef provider = CGDataProviderCreateWithData(NULL, pixels, pixelBufferSize, NULL);
CGImageRef imageRef = CGImageCreate(..., provider, ...);
UIImage * image = [[UIImage alloc] initWithCGImage:imageRef];
return [image autorelease];
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以确切地解释谁在这里拥有什么记忆?我想要正确清理,但我不确定如何安全地进行清理.文档在这些上是模糊的.如果free
在创建UIImage之后我在此函数末尾的像素,然后使用UIImage,我崩溃了.如果我在创建UIImage之后释放提供者或imageRef,我没有看到崩溃,但他们显然已经完全传递了像素,所以我对释放这些中间状态感到不安.
(我知道每个CF文档我都需要在后者上调用release,因为它们来自Create函数,但是我可以在使用UIImage之前这样做吗?)大概我可以使用提供者的dealloc回调来清理像素缓冲区,还有什么?
谢谢!
#include <vector>
struct A {int a;};
struct B : public A {char b;};
int main()
{
B b;
typedef std::pair<A*, A*> MyPair;
std::vector<MyPair> v;
v.push_back(std::make_pair(&b, &b)); //compiler error should be here(pair<B*,B*>)
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我不明白为什么这个编译(也许有人可以提供详细的解释?它是否与名称查找相关?
顺便说一句,在Solaris上,SunStudio12它没有编译: error : formal argument x of type const std::pair<A*, A*> & in call to std::vector<std::pair<A*,A*> >::push_back(const std::pair<A*, A*> & ) is being passed std::pair<B*, B*>
我经常读到这个框架太大了,一个开发人员无法体验它的每一部分.有一些实际数字肯定有助于把事情放在眼里.
MSDN似乎列出了所有这些,但没有实际的数字(从我能看到的),花费数小时计算它们并不是我对生产时间的看法.
我意识到还有代表,枚举,事件等,但上述类型是最感兴趣的.
此外,基类库(BCL)中的类型数量以及整个框架类库(FCL)的大小将是有趣的.
这些信息有两种用途:
首先,要了解您实际使用的整体框架的数量以及您还需要学习多少.
其次,来自其他平台(和非技术人员)的许多程序员经常会惊讶于程序员可以将大部分时间花在".NET Framework"中.有一些数字肯定有助于解释为什么这不是狭隘的技能/经验的迹象.
[更新]
使用安德鲁的代码(在我的.NET 3.5 SP1系统上),我得到:
Classes: 12688 Value types: 4438 Interfaces: 1296