小编Cli*_*fat的帖子

使用拖放进行Python GUI编程,还包含stdout重定向

我是编程的新手,也是python的新手.我刚开发了我的第一个脚本,它是prosesses文件,但目前只是从命令行开始.

这对我来说只是一个爱好,所以我的工作不依赖于它:-)

我花了几天时间试图了解python gui开发并得出结论我一定是傻瓜.

我看过wxpython和Tkinter并且也不明白,虽然Tkinter看起来更容易.我甚至看过像Boa Contrictor和wxglade这样的所见即所得的工具.我甚至不明白如何使用它们.无论如何,我更愿意手动使用我的编辑器和代码.

我的问题是:

我想创建一个带有1个或2个对象的桌面窗口,具体取决于最佳效果.如果只有一个对象,则为某种文本框,如果是2个对象,则为文本框和图像.

我希望能够从文件管理器中拖动文件并将其放在我的脚本窗口中,这只是将文件名传递给我的脚本.

我想将stdout重定向到桌面窗口中的对象,以便所有脚本输出都出现在桌面窗口中.

我不确定一个物体是否能做到这两件事.如果它可以只是一个文本框就足够了,否则将文件拖放到图像上并将重定向的输出转到文本框.

我在网上找到了拖放示例但没有包含stdout重定向的内容,而且我无法成功修改我遇到过的任何示例.

如果某种类型的鞋底有时间展示如何实现我想要的东西并解释它的工作原理我会非常感激!

----编辑----

我一直在玩2个例子,并设法将2个哈希,以便得到我想要的工作.代码如下.它尚未清理(旧评论等......),但它确实有效.

#!/usr/bin/python

# The next two lines are not necessary if you installed TkDnd
# in a proper place.

import os
from Tkinter import *
os.environ['TKDND_LIBRARY'] = '/home/clinton/Python/tkdnd2.6/'

import Tkinter
from untested_tkdnd_wrapper import TkDND


class Redir(object):
    # This is what we're using for the redirect, it needs a text box
    def __init__(self, textbox):
        self.textbox = textbox
        self.textbox.config(state=NORMAL)
        self.fileno = sys.stdout.fileno

    def write(self, message):
        # When you …
Run Code Online (Sandbox Code Playgroud)

python user-interface wxpython stdout tkinter

6
推荐指数
2
解决办法
3万
查看次数

Python循环效率

我只是想知道是否有更高效的方法来编写以下循环,因为我需要加速我的程序?

for char in data:
    if char in self.key:
        match += chr(self.key.index(char))
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助.

python performance loops

3
推荐指数
1
解决办法
1143
查看次数

标签 统计

python ×2

loops ×1

performance ×1

stdout ×1

tkinter ×1

user-interface ×1

wxpython ×1