标签: tkinter

root.destroy()和root.quit()之间有什么区别?

在Python中使用tkinter,关闭根窗口时root.destroy()和之间的区别是什么root.quit()

一个优先于另一个吗?是否释放了另一个没有的资源?

python tkinter

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

如何删除Canvas小部件周围的浅灰色边框?

我一直在搞乱Tkinter Canvas小部件,看看我是否可以制作一些美观的小部件,我有几个问题.

首先,为什么我的Canvas小部件周围有一个浅灰色边框,我该如何摆脱它呢?

其次,为什么画布中最左边的位置(2,2)?看起来应该是(0,0).

我目前的剧本:

from Tkinter import *

master = Tk()
master.configure(bg='black')
master.wm_attributes("-topmost", 1)

w = Canvas(master, width=150, height=40, bd=0,relief='ridge',)
w.pack()

color = 100
x0 = 2
y0 = 2
x1 = 151
y1 = 2

while y0 < 20 :
    r = color
    g = color
    b = color
    rgb = r, g, b
    Hex = '#%02x%02x%02x' % rgb
    w.create_line(x0, y0, x1, y1,fill=str(Hex), width=1)
    color = color - 2
    y0 = y0 + 1
    y1 …
Run Code Online (Sandbox Code Playgroud)

python tkinter tkinter-canvas

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

tkinter python最大化窗口

我想初始化一个窗口最大化,但我无法找到如何做到这一点.我在Windows 7上使用python 3.3和Tkinter 8.6.我想答案就在这里:http://www.tcl.tk/man/tcl/TkCmd/wm.htm#m8 但我不知道如何输入它进入我的python脚本

此外,我需要获得窗口的宽度和高度(两者都是最大化的,如果用户之后重新缩放它),但我想我可以自己找到它.

tkinter python-3.x

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

如何让tkinter canvas动态调整窗口宽度?

我需要在tkinter中获取一个画布,将其宽度设置为窗口的宽度,然后在用户使窗口变小/变大时动态地重新调整画布大小.

有没有办法(轻松)这样做?

python canvas tkinter autoresize python-3.x

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

多个窗口的Tkinter示例代码,为什么按钮不能正确加载?

我正在写一个程序应该:

  1. 只需按一下按钮即可打开一个窗口.
  2. 按下另一个按钮关闭新打开的窗口.

我正在使用类,所以我可以稍后将代码插入到更大的程序中.但是,我无法正确加载我的按钮.

import tkinter as tk

class Demo1(tk.Frame):
    def __init__(self):
        tk.Frame.__init__(self)
        self.pack()
        self.master.title("Demo 1")
        self.button1 = tk.Button(self, text = "Button 1", width = 25,
                               command = self.new_window)
        self.button1.grid(row = 0, column = 1, columnspan = 2, sticky = tk.W+tk.E+tk.N+tk.S)

    def new_window(self):
        self.newWindow = Demo2()

class Demo2(tk.Frame):
    def __init__(self):
        new = tk.Frame.__init__(self)
        new = tk.Toplevel(self)
        new.title("Demo 2")
        new.button = tk.Button(text = "Button 2", width = 25,
                               command = self.close_window)
        new.button.pack()

    def close_window(self):
        self.destroy()

def main():
    Demo1().mainloop()

if __name__ == …
Run Code Online (Sandbox Code Playgroud)

python class tkinter destroy

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

为什么Tkinter中字符串像素的计算宽度和高度在平台之间有所不同?

我有一个Python脚本,需要计算以任意字体显示的任意字符串的确切大小,以生成简单的图表.我可以轻松地使用Tkinter.

import Tkinter as tk
import tkFont
root = tk.Tk()
canvas = tk.Canvas(root, width=300, height=200)
canvas.pack()
(x,y) = (5,5)
text = "yellow world"
fonts = []
for (family,size) in [("times",12),("times",24)]:
    font = tkFont.Font(family=family, size=size)
    (w,h) = (font.measure(text),font.metrics("linespace"))
    print "%s %s: (%s,%s)" % (family,size,w,h)
    canvas.create_rectangle(x,y,x+w,y+h)
    canvas.create_text(x,y,text=text,font=font,anchor=tk.NW)
    fonts.append(font) # save object from garbage collecting
    y += h+5
tk.mainloop()
Run Code Online (Sandbox Code Playgroud)

结果似乎取决于Python和/或系统的版本:

Python 2.5 Mac 0S X,时间12:(63,12),时间24:(128,24).Python 2.6 Mac OS X,时间12:(64,14),时间24:(127,27).Python 2.6中的Windows XP,12倍:(78,19),时间为24:(169,36)http://grab.by/grabs/d24a5035cce0d8032ea4e04cb8c85959.png

在Ned Batchelder提到它之后,我发现字体的大小因平台而异.只要你坚持与自己保持一致的Tkinter,它可能不是一个交易破坏者.但我的整个程序没有使用Tkinter的来执行实际的绘图:它只是依靠其字体大小计算,以产生一个输出(在SVG或Python脚本被发送到Nodebox).事情就是这样:

mocodo的输出http://grab.by/grabs/f67b951d092dd1f4f490e1469a53bca2.png

(请查看实际大小的 …

python size fonts cross-platform tkinter

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

如何在tkinter中创建日期选择器?

有没有标准方式tkinter应用程序允许用户选择日期?

python tkinter

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

TKirt在Virtualenv

尝试使用virtualenv中基于TKinter的小部件运行python代码.

    user@computer:~/myproject$ env/bin/python Python
    2.7.3 (default, Sep 26 2012, 21:51:14)  [GCC 4.7.2] on linux2 Type "help", "copyright", "credits" or "license" for more information.
    >>> import Tkinter 
Traceback (most recent call last):   File "<stdin>", line 1, in <module>   File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 42, in <module>
        raise ImportError, str(msg) + ', please install the python-tk package' ImportError: No module named _tkinter, please install the python-tk package
Run Code Online (Sandbox Code Playgroud)

将TK安装到virtualenv的正确方法是什么?

python tkinter virtualenv

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

如果在函数中创建Tkinter图像,为什么不显示?

此代码有效:

import tkinter

root = tkinter.Tk()
canvas = tkinter.Canvas(root)
canvas.grid(row = 0, column = 0)
photo = tkinter.PhotoImage(file = './test.gif')
canvas.create_image(0, 0, image=photo)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

它向我展示了图像.

现在,这段代码编译但它没有显示我的图像,我不知道为什么,因为它是相同的代码,在类中:

import tkinter

class Test:
    def __init__(self, master):
        canvas = tkinter.Canvas(master)
        canvas.grid(row = 0, column = 0)
        photo = tkinter.PhotoImage(file = './test.gif')
        canvas.create_image(0, 0, image=photo)

root = tkinter.Tk()
test = Test(root)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

python image tkinter tkinter-canvas

30
推荐指数
3
解决办法
5万
查看次数

使用tkinter到ssh没有显示名称和没有$ DISPLAY环境变量

我正在尝试运行一个非常简单的代码,在集群中输出.png文件.这是代码:

import matplotlib.pyplot as plt
import numpy as np

x = np.random.randn(60)
y = np.random.randn(60)

plt.scatter(x, y, s=20)

out_png = 'path/to/store/out_file.png'
plt.savefig(out_png, dpi=150)
Run Code Online (Sandbox Code Playgroud)

如果我使用python simple_code.py安装了matplotlib 1.2.1的系统中的命令运行此代码,我会收到警告:

Unable to load library icui18n "Cannot load library icui18n:
Run Code Online (Sandbox Code Playgroud)

.png图像仍然生成,所以我没有问题.但是如果我在安装了matplotlib 1.3.0的集群中使用相同的命令和代码,则会失败并显示错误:

Traceback (most recent call last):
  File "simple_code.py", line 33, in <module>
    plt.scatter(x, y, s=20)
  File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 3078, in scatter
    ax = gca()
  File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 803, in gca
    ax =  gcf().gca(**kwargs)
  File "/usr/lib/pymodules/python2.7/matplotlib/pyplot.py", line 450, in gcf
    return figure()
  File …
Run Code Online (Sandbox Code Playgroud)

python ssh numpy tkinter matplotlib

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