小编Sym*_*mon的帖子

删除和更改tkinter事件绑定

如何停止处理事件或切换为其调用的函数?

修订代码:

from Tkinter import *

class GUI:
    def __init__(self,root):
        Window = Frame(root)
        self.DrawArea = Canvas(Window)
        self.DrawArea.pack()
        Window.pack()

        self.DrawArea.bind("<Button 1>",self.starttracking)

    def updatetracking(self,event):
        print event.x,event.y

    def finishtracking(self,event):
        self.DrawArea.bind("<Button 1>",self.starttracking)
        self.DrawArea.unbind("<Motion>")

    def starttracking(self,event):
        print event.x,event.y
        self.DrawArea.bind("<Motion>",self.updatetracking)
        self.DrawArea.bind("<Button 1>",self.finishtracking)



if __name__ == '__main__':
    root = Tk()
    App = GUI(root)
    root.mainloop()
Run Code Online (Sandbox Code Playgroud)

python events tkinter

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

如何将焦点放在python Tkinter文本小部件上?

我希望能够打开App GUI并让它自动将光标放入特定的文本小部件中.最佳情况是:一旦应用程序启动,有人可以开始输入而无需单击文本小部件.这只是一个显示问题的小例子:

from Tkinter import *
root = Tk()
Window = Frame(root)
TextWidget = Text(Window)
TextWidget.pack()
Window.pack()
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

python text tkinter widget

12
推荐指数
1
解决办法
1万
查看次数

使用Tkinter Canvas Widget添加放大和缩小?

如何将放大和缩小添加到以下脚本中,我想将其绑定到鼠标滚轮.如果您在linux上测试此脚本,请不要忘记将MouseWheel事件更改为Button-4和Button-5.

from Tkinter import * 
import Image, ImageTk

class GUI:
    def __init__(self,root):
        frame = Frame(root, bd=2, relief=SUNKEN)

        frame.grid_rowconfigure(0, weight=1)
        frame.grid_columnconfigure(0, weight=1)
        xscrollbar = Scrollbar(frame, orient=HORIZONTAL)
        xscrollbar.grid(row=1, column=0, sticky=E+W)
        yscrollbar = Scrollbar(frame)
        yscrollbar.grid(row=0, column=1, sticky=N+S)
        self.canvas = Canvas(frame, bd=0, xscrollcommand=xscrollbar.set, yscrollcommand=yscrollbar.set, xscrollincrement = 10, yscrollincrement = 10)
        self.canvas.grid(row=0, column=0, sticky=N+S+E+W)

        File = "PATH TO JPG PICTURE HERE"

        self.img = ImageTk.PhotoImage(Image.open(File))
        self.canvas.create_image(0,0,image=self.img, anchor="nw")
        self.canvas.config(scrollregion=self.canvas.bbox(ALL))
        xscrollbar.config(command=self.canvas.xview)
        yscrollbar.config(command=self.canvas.yview)

        frame.pack()

        self.canvas.bind("<Button 3>",self.grab)
        self.canvas.bind("<B3-Motion>",self.drag)
        root.bind("<MouseWheel>",self.zoom)


    def grab(self,event):
        self._y = event.y
        self._x = event.x

    def drag(self,event):
        if …
Run Code Online (Sandbox Code Playgroud)

python tkinter zoom zooming

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

Python多重比较风格?

我想知道是否有办法以更紧凑的方式执行以下操作:

if (text == "Text1" or text=="Text2" or text=="Text3" or text=="Text4"):
    do_something()
Run Code Online (Sandbox Code Playgroud)

问题是我在if语句中只有4个比较,它开始看起来很长,模糊和丑陋.有任何想法吗?

python comparison coding-style readability

8
推荐指数
2
解决办法
4129
查看次数

在Tkinter画布上使用Python的.jpg图像的滚动条

我正在尝试使画布上的jpeg可滚动,但似乎无法使滚动条正常工作。这是一些示例代码:

from Tkinter import *
import Image, ImageTk

root = Tk()

frame = Frame(root, bd=2, relief=SUNKEN)

frame.grid_rowconfigure(0, weight=1)
frame.grid_columnconfigure(0, weight=1)

xscrollbar = Scrollbar(frame, orient=HORIZONTAL)
xscrollbar.grid(row=1, column=0, sticky=E+W)

yscrollbar = Scrollbar(frame)
yscrollbar.grid(row=0, column=1, sticky=N+S)

canvas = Canvas(frame, bd=0, xscrollcommand=xscrollbar.set, yscrollcommand=yscrollbar.set)
canvas.grid(row=0, column=0, sticky=N+S+E+W)

File = "jpg filepath here"
img = ImageTk.PhotoImage(Image.open(File))
canvas.create_image(0,0,image=img, anchor="nw")

xscrollbar.config(command=canvas.xview)
yscrollbar.config(command=canvas.yview)

frame.pack()
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

python jpeg tkinter scrollbar

6
推荐指数
1
解决办法
5079
查看次数

使用Python Tkinter:始终在顶部窗口中不显示自定义类工具提示文本

我无法获得工具提示与我总是在顶部窗口一起工作.显然问题是你不能在总是排在最前面的东西之上创造一些东西; 所以我想知道是否有解决方法或解决方案.Popup需要始终位于其他窗口之上,但我还需要正确显示所有工具提示.

这是我到目前为止的精简版:

from Tkinter import *

class GUI:
    def __init__(self, root):
        Popup = Toplevel(root)
        Popup.resizable(0,0)
        Popup.attributes("-toolwindow", 1)
        Popup.wm_attributes("-topmost", 1)
        PFrame = Frame(Popup)
        self.B = Button(PFrame, width=10,height=10)
        self.B.pack()
        self.createToolTip(self.B,"Click this button.")
        PFrame.pack()

    class ToolTip(object):
        def __init__(self, widget):
            self.widget = widget
            self.tipwindow = None
            self.id = None
            self.x = self.y = 0
        def showtip(self, text):
            self.text = text
            if self.tipwindow or not self.text: return
            x,y,cx,cy = self.widget.bbox("insert")
            x = x + self.widget.winfo_rootx() +15
            y = y + cy + self.widget.winfo_rooty() +65 …
Run Code Online (Sandbox Code Playgroud)

python tkinter

4
推荐指数
1
解决办法
2850
查看次数

与Python中的string.Template相反

我知道模板可以像下面这样工作:

x = Template("  Coordinates;     $o1;$o2;$o3;\n")
y = x.substitute(o1 = 23, o2 = 108, o3 = 655)
Run Code Online (Sandbox Code Playgroud)

你会给我:

"  Coordinates;     23;108;655;\n"
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法逆转这个?像我打包的东西解压缩:

x = Template("  Coordinates;     $o1;$o2;$o3;\n")
y = "  Coordinates;     23;108;655;\n"
z = x.unpack(y)
Run Code Online (Sandbox Code Playgroud)

并让z返回类似的东西:

["23","108","655"]
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?我应该使用正则表达式吗?

编辑:如果使用正则表达式,我将如何编程以下3行返回第一个数字和6个尾随数字?

   a = "   123;  Coord   ;  19.1335;   3.5010;  1; 3; 8; 4"
   b = "    17;  Coord   ;  15.2940;  13.5010;  3; 1; 8; 8"
   c = "     5;  Coord   ;  19.1345;   0.6200;  1; 1; 7; 8"
Run Code Online (Sandbox Code Playgroud)

我尝试了这些,似乎无法让它工作:

>>> re.match('(\d+);  Coord …
Run Code Online (Sandbox Code Playgroud)

python regex string templates

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

Python行太长了,我怎样才能让它更具可读性?

for pic,fn,xoff in [(self.PNew,self.New,0),(self.POpen,self.Open,0),(self.PSave,self.Save,0),(self.POrigin,self.SetOrigin,20),(self.PFiducial,self.SetFiducial,0),(self.PLine,self.AddLine,20),(self.PPoint,self.AddPoint,0),(self.PMove,self.AddMove,0),(self.PCircle,self.AddCircle,0),(self.PCall,self.AddCall,0)]: Button(ButtonRow,image=pic,command=fn).pack(side=LEFT,padx=(xoff,0))
Run Code Online (Sandbox Code Playgroud)

python readability tkinter button

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

Excel VBA如何使Enter键的行为类似于Tab键

我希望使用输入键可以像使用工作表输入值时的Tab键一样运行.我不确定是否有足够的信息可以帮助我,所以如果不是,就提问.

输入 - 右后,我可以在工具>选项>编辑移动选择中找到设置.我想要相同的功能,但只适用于一个特定的工作表.

excel vba excel-vba

0
推荐指数
1
解决办法
5143
查看次数