标签: tkinter

在Python中设置按钮的位置?

我刚刚编写了一个代码来创建一个窗口(使用TKinter)并显示一个工作按钮.

b = Button(master, text="get", width=10, command=callback)
Run Code Online (Sandbox Code Playgroud)

但我想在这个下面有多个按钮.

如何设置按钮的行和列?我试图添加,row = 0, column = 0,但这不起作用.

谢谢

python row tkinter

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

如何将滚动条附加到文本小部件?

我可能过度思考了这一点,但由于某种原因,我似乎无法弄清楚这一点.我试图将滚动条附加到我的文本字段,但无法这样做.这是代码段:

self.scroller = Scrollbar(self.root)
self.scroller.place(x=706, y=121)
self.outputArea = Text(self.root, height=26, width=100) 
self.outputArea.place(x=0, y=120)
self.scroller.config(command=self.outputArea.yview)
self.outputArea.config(state=DISABLED, yscrollcommand = self.scroller.set)
Run Code Online (Sandbox Code Playgroud)

这段代码在我的文本字段旁边放置一个非常小的滚动条(非常小,我的意思是你可以看到向上和向下箭头,但两者之间没有任何东西).当我的文本字段填满时,我可以用它滚动,但有没有办法至少设置滚动条的高度,使它看起来与文本字段的高度相同?

python tkinter

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

鼠标位置Python Tkinter

有没有办法获得鼠标的位置并将其设置为var?

python tkinter mouse-pointer

17
推荐指数
4
解决办法
5万
查看次数

PermissionError:[Errno 13]权限被拒绝

我收到这个错误:

Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python34\lib\tkinter\__init__.py", line 1538, in __call__
return self.func(*args)
File "C:/Users/Marc/Documents/Programmation/Python/Llamachat/Llamachat/Llamachat.py", line 32, in download
with open(place_to_save, 'wb') as file:
PermissionError: [Errno 13] Permission denied: '/goodbye.txt'
Run Code Online (Sandbox Code Playgroud)

运行时:

def download():
    # get selected line index
    index = films_list.curselection()[0]
    # get the line's text
    selected_text = films_list.get(index)
    directory = filedialog.askdirectory(parent=root, 
                                        title="Choose where to save your movie")
    place_to_save = directory + '/' + selected_text
    print(directory, selected_text, place_to_save)
    with open(place_to_save, 'wb') as file:
        connect.retrbinary('RETR ' …
Run Code Online (Sandbox Code Playgroud)

windows tkinter permission-denied python-3.x

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

如何获取Tkinter标签文本?

我正在制作用户将从中选择的地址列表,并将返回地址文本.我需要使用Tkinter.Label因为Tkinter.Listbox不允许换行.

踢球者是.get()Label类中没有类似的方法...

我知道我可以这样做:

v = StringVar()
Label(master, textvariable=v).pack()
v.set("New Text!")
 ...
print v.get()
Run Code Online (Sandbox Code Playgroud)

但是,我有一个5-20地址列表'保持一个单独的数组StringVar()将是困难的b/c我无法识别活动标签的loc.我想只访问激活的小部件内容.

是否Tkinter.Label使用正确的小部件?

python label tkinter

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

通过网格在Tkinter中显示Matplotlib导航工具栏

我正在开发一个小的Tkinter GUI来绘制matplotlib图.(它包含几个条目,并根据其内容组装图.)

我根据http://matplotlib.org/examples/user_interfaces/embedding_in_tk.html设计了我的绘图小部件,只使用网格而不是包:

canvas = FigureCanvasTkAgg(fig, master=root)
canvas.get_tk_widget().grid(row=1,column=4,columnspan=3,rowspan=20)
Run Code Online (Sandbox Code Playgroud)

那部分有效.但是以相同的方式嵌入NavigationToolbar却没有.当我包含这些行时,Tkinter会在没有错误的情况下崩溃:

toolbar = NavigationToolbar2TkAgg( canvas, root )
canvas._tkcanvas.grid(row=22,column=4)
Run Code Online (Sandbox Code Playgroud)

我知道这是因为NavigationToolbar调用pack内部,并packgrid合不来.但是,我喜欢网格,并且不愿重新设计我的整个GUI只是为了能够使用NavigationToolbar.

有解决方法,所以我可以通过网格使用NavigationToolbar2TkAgg吗?(我已经找到了意见,"继承和过载" 在这里,但不知道该怎么做.)

任何帮助非常感谢!

grid tkinter matplotlib

16
推荐指数
2
解决办法
9312
查看次数

Tkinter在文本小部件中添加行号

试图学习tkinter和python.我想在相邻的框架中显示文本小部件的行号

from Tkinter import *
root = Tk()
txt = Text(root)
txt.pack(expand=YES, fill=BOTH)
frame= Frame(root, width=25)
#

frame.pack(expand=NO, fill=Y, side=LEFT)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

我在一个名为unpythonic的网站上看到了一个例子,但它假设txt的行高为6像素.

我正在尝试这样的事情:

1)将Any-KeyPress事件绑定到返回按键发生的行的函数:

textPad.bind("<Any-KeyPress>", linenumber)


def linenumber(event=None):
    line, column = textPad.index('end').split('.')
    #creating line number toolbar
    try:
       linelabel.pack_forget()
       linelabel.destroy()
       lnbar.pack_forget()
       lnbar.destroy()
    except:
      pass
   lnbar = Frame(root,  width=25)
   for i in range(0, len(line)):
      linelabel= Label(lnbar, text=i)
      linelabel.pack(side=LEFT)
      lnbar.pack(expand=NO, fill=X, side=LEFT)
Run Code Online (Sandbox Code Playgroud)

不幸的是,这会在帧上给出一些奇怪的数字.有更简单的解决方案吗?怎么解决这个问题?

python tkinter

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

什么魔法阻止Tkinter程序在交互式shell中阻塞?

注意:这有点是对问题的跟进:Tkinter - 我什么时候需要调用mainloop?

通常在使用Tkinter时,您调用Tk.mainloop来运行事件循环并确保正确处理事件并且窗口保持交互而不会阻塞.

在交互式shell中使用Tkinter时,似乎不需要运行主循环.举个例子:

>>> import tkinter
>>> t = tkinter.Tk()
Run Code Online (Sandbox Code Playgroud)

将出现一个窗口,它不会阻止:您可以与它进行交互,拖动它并关闭它.

因此,交互式shell中的某些内容似乎确实创建了一个窗口并在后台运行事件循环.

现在为有趣的事情.再次从上面举例,但是在下一个提示中(不关闭窗口),输入任何内容 - 而不是实际执行它(即不要按回车键).例如:

>>> t = tkinter.Tk()
>>> print('Not pressing enter now.') # not executing this
Run Code Online (Sandbox Code Playgroud)

如果您现在尝试与Tk窗口进行交互,您将看到它完全阻止.因此,当我们向交互式shell输入命令时,我们认为将在后台运行的事件循环停止.如果我们发送输入的命令,您将看到事件循环继续,我们在阻塞期间所做的任何操作都将继续处理.

所以最大的问题是:交互式shell中发生的这种魔力是什么?当我们没有明确地执行它时,什么运行主循环?为什么我们输入命令时需要停止(而不是在执行命令时停止)?

注意:以上在命令行解释器中的工作方式与此类似,而不是IDLE.对于IDLE,我假设GUI实际上并不会告诉底层解释器已经输入了某些内容,而只是将输入保存在本地,直到它被执行.

python tkinter interactive-shell

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

urllib.urlretrieve文件python 3.3

我知道几个星期前我已经看到了答案,但我现在找不到它.

urllib.urlretrieve在Python 3.3中很简单.你怎么做呢?我正在尝试下载一个mp4/html(页面不存在)的场景,如果它不存在则为页面,如果它存在则为mp4(如果文件大小很小则我可以删除文件或以其他方式保留它) .

我运行的代码很好,完全按照我想要的方式在2.7中完成,但它在3.3中不起作用.

我正在处理两个版本的Python之间的令人头疼的问题,Tkinter和urllib.Tkinter在3.3中运行良好,但urllib没有,urllib在2.7中工作正常,但Tkinter没有.如何在3.3中正确下载?

我知道3.3已经改变了urllib,但是我找不到我一两周前看到的东西来指导我正确的方向.

当我添加Tkinter转换并且3.3刚出现并且给我urllib没有属性'urlretrieve;时,2.7几乎没有任何作用.我更喜欢3.3.

python tkinter

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

在Python中的远程机器上执行命令

我在Ubuntu上用python编写程序,ls -l在RaspberryPi上执行命令,与Network连接.

任何人都可以指导我如何做到这一点?

python terminal ubuntu tkinter paramiko

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