百度空间 | 百度首页 
 
文章列表
 
您正在查看 "Ulipad" 分类下的文章

2009-09-30 22:09
差点找不找了,贴出来。不过已经集成到Ulipad中了。



在目录浏览窗口中的Print Directory Tree就是。执行后会将当前选中的目录结构输出到messages窗口。

代码如下:

  1 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#! /usr/bin/env python
#coding=utf-8
import os, sys
import fnmatch

space = 4
stack = {0:''}

def path_line(level, path, is_dir, is_last):
s = []
leading = stack[level-1]

if is_dir:
path = path+'/'

if is_last:
s.append(leading + '`-- ' + path)
leading += ' '
else:
s.append(leading + '|-- ' + path)
leading += '| '

stack[level] = leading

return ''.join(s)

def walk(dir, level=1, skips=['.svn', '*.pyc']):
r = []
dirs = [x for x in os.listdir(dir) if not any([fnmatch.fnmatch(x, y) for y in skips])]
num = len(dirs)
for i, path in enumerate(sorted(dirs, cmp=lambda x,y: cmp(x.lower(), y.lower()))):
p = os.path.join(dir, path)
flag = os.path.isdir(p)
r.append(path_line(level, path, flag, i==num-1))
if flag:
r.extend(walk(p, level+1, skips=skips))

return r

if __name__ == '__main__':
if len(sys.argv) == 1:
path = '.'
else:
path = sys.argv[1]
print path
print '\n'.join(walk(path))
类别:Ulipad | 评论(8) | 浏览()
 
2009-09-19 17:01

http://vimeo.com/6652566

感觉Code Snippets功能应该对大家有用,就介绍一下。有兴趣可以看看。


类别:Ulipad | 评论(0) | 浏览()
 
2009-03-11 18:28
原来是想投稿的,但是编辑们认为太具体了,范围太窄,没人采用。所以一直也没有发表过,也不曾公开过。不过正好有网友问到这个问题,我找了出来放到网上。从这里下载。有文章和源码。

文章描述了内置的Lexer的使用和自定义的Lexer的使用。不过它是一个精简版本,Ulipad对于自定义Lexer作了增强。有兴趣可以去看Ulipad的源码。主要是 NCustomLexer.py ,可以使自定义语法高亮更容易。同时在Ulipad的英文文档 howto_write_custom_syntax_support.htm 中我也写过如何使用它,可以看一看。另外有许多Lexer就是使用NCustomLexer来处理的都可以看,比如:

mixins/LexerRst.py 处理reStructuredText
plugins/djangoproj/DjangoTMPLexer.py 处理Django模板
plugins/mako_plugin/MakoTMPLexer.py 处理Mako模板

等等。
类别:Ulipad | 评论(5) | 浏览()
 
2009-03-09 22:55
今天一位外国朋友问我的UliPad不支持screen reader,刚开始不太明白,于是我试了灵格斯,可以抓文字。但是我问了他什么叫screen reader,才搞明白screen reader大部分是给盲人和弱视的群体使用的软件,因为他们无法阅读屏幕,所以需要读屏的软件。这种软件可以把你的屏幕直接读出来,比如:鼠标的移动会有不同的声音,让你很容易就知道大概的位置。鼠标放在某个窗口就可以自动将内容读出来。他还特别告诉我了两个软件:Jaws和nvda。而且nvda是使用Python开发的。不过大部分的软件对于微软的控件支持比较好。而Ulipad是使用了Scintilla的版本StyledTextCtrl。

那么为了测试,我下载了nvda,是从一个叫自强盲人网的地方。以前我从来没有去过这样的地方。甚至还搜到一个叫晴天小站的Blog,他的作者杨永全就是一位盲人。这里有他的一份介绍。看到他的眼睛让我有一种说不出的感觉。我感谢我现在生活得很好。

还是说一说nvda吧。启动后,鼠标的移动有声音,自动念的中文,不过效果不是太好。放在Ulipad中不知道念得什么,反正不是文件的内容。但是使用EditPlus打开相同的内容却可以自动念。因此我想,这个可能才是那位外国朋友想要的功能。于是在google上查了一下,很早就有这个问题,说是Scintilla的1.62版本就可以解决。不过现在版本应该早就过了,但是还是有这样的问题。很失望。

很希望Ulipad可以让帮助更多的人。
类别:Ulipad | 评论(10) | 浏览()
 
2009-02-24 17:55
在 17xie 上已经开始了《Learning Uliweb》的写作,到目前已经进入第三章的写作,不过是最简单的Hello的讲解。那么我遇到一个问题是代码高亮怎么办。后来想起来Ulipad本身就有代码转换成HTML的功能,并且可以直接打开浏览器看到结果。所以就用它将转换代码,然后贴到web编辑器中。效果还不错。百度的Blog也可以这么干。

使用方法:

1. 先选中要处理的Python代码
2. 点右键在弹出菜单中选Convert->Output to HTML Window(或在Edit菜单也可以找到Convert菜单),这只是一个配置项,是不能输出的
3. 然后再点右键,在弹出菜单中选Convert->Py to HTML,就可以看到弹出一个HTML窗口,有转换后的Python高亮代码。选中,拷贝就行了。
类别:Ulipad | 评论(3) | 浏览()
 
2009-02-15 20:58
是在Showmedo上,见这里

不过很简单,是讲如何在Ulipad中切换2.5和3.0解释器的。有兴趣可以看一看,是一位外国朋友做的,我不认识。
类别:Ulipad | 评论(0) | 浏览()
 
2008-11-30 11:44
注意,不是我写的,是一位外国朋友,地址在这里 http://simiansector.com/ulipad-notes/index.html 特别是他详细写了关于mixin的理解和acp的一些说明和扩展。
类别:Ulipad | 评论(14) | 浏览()
 
2008-11-28 15:32
说实在的,我Linux下用得不多,但是有一些网友是使用Linux的。目前使用wxPython开发的软件在输入中文时会有一些问题,在邮件列表中我看到Macro说是解决了,具体我没有试过,你可以按他的方法试一试:

编写一个小shell,如下:

#!/bin/sh

export GTK_IM_MODULE=XIM
cd ~/repos/ulipad-read-only/
./UliPad.py

其中cd为UliPad的安装目录,应该按你的环境改一下。
类别:Ulipad | 评论(4) | 浏览()
 
2008-11-28 11:27
在UliPad中,如果你使用的是Windows的平台,那么在浏览HTML时可以使用ie内核打开。而且UliPad还支持将reStructuredText进行HTML预览的处理。但是在我安装了2.8.9.1之后,程序就报错了,错误是说ie对象找不到EVT_DocumentComplete属性。很奇怪,看了一下iewin.py发现我以前用的2.8.7.1和新的2.8.9.1版本不一样了,少了事件的定义。

虽然以前就知道ActiveX框架换了,但是的确没有考虑过。结果造成UliPad与新版本的wxPython的不兼容。所以在网上查了一下,参考了2.8.9.1中的demo示例,大概是这个样子的:

1. 不再使用Bind的方式对事件进行绑定了,而是通过直接定义事件处理函数。但这个函数不能随便定义,具体的可以查阅MSDN上的文档得知需要定义哪些事件处理函数。同时要注意在wxPython中还要定义一个this参数,比如原EVT_DocumentComplete事件对应的定义为:

def DocumentComplete(self, this, pDisp, URL):

第一个是self,第二个是this

2. 在创建iewin对象之后,要调用:

ie.AddEventSink(self)

具体这个有什么用,我没有仔細研究,不过猜测就是可以自动将事件与方法绑定吧。

ActiveX的新的封装是从2.8.8.0版本开始的,所以为了保持兼容,你可以做一个判断,如:

        if wx.Platform == '__WXMSW__':
            import wx.lib.iewin as iewin

...           
            if wx.version() < '2.8.8.0':
                self.ie.Bind(iewin.EVT_DocumentComplete, self.OnDocumentComplete, self.ie)
            else:
                self.ie.AddEventSink(self)
类别:Ulipad | 评论(0) | 浏览()
 
2008-06-25 15:18
我一直不喜欢使用irc,因为端口受限制。不过现在有许多web irc网站,可以直接通过浏览器来访问。有一个叫Chester Dunn的外国朋友,帮我在Freenode.net上建了一个,如果你感兴趣可以上去找到#ulipad,与我一起交流Ulipad。http://www.mibbit.com/ 是一个web的irc网站很不错,找到服务器,然后输入channel就可以进入了,很方便。
类别:Ulipad | 评论(4) | 浏览()
 
     
 
 
文章分类
 
 
 
Uliweb(95)
 
Python(13)
 
Ulipad(11)
 
Web(3)
 
 
 
     
 
文章存档
 
 
 
 
 
 
 
 
 
 
 
 
 
 
     
 
最新文章评论
   
 
 

期待ulicms~
 

噢,正好看到前几天有人问相同的问题,你已经回答过了。谢谢!
 
 
     


©2009 Baidu