标签: tkinter

如何关闭tkinter窗口?

我该如何结束Tkinter程序?假设我有这段代码:

from Tkinter import *

def quit():
    # code to exit

root = Tk()
Button(root, text="Quit", command=quit).pack()
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

我该如何定义quit退出应用程序的功能?

python tkinter

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

Tkinter:"可能没有为Tk配置Python"

今天我想开始与Tkinter合作,但我遇到了一些问题.

Python 3.2 (r32:88445, Mar 28 2011, 04:14:07) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from tkinter import *
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.2/tkinter/__init__.py", line 39, in <module>
import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named _tkinter
Run Code Online (Sandbox Code Playgroud)

那么如何配置我的Python 3.2以使用Tkinter?

python tkinter python-3.x

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

为什么在声明时执行Button参数"command"?

我的代码是:

from Tkinter import *

admin = Tk()
def button(an):
    print an
    print 'het'

b = Button(admin, text='as', command=button('hey'))
b.pack()
mainloop()
Run Code Online (Sandbox Code Playgroud)

按钮不起作用,在没有我的命令的情况下打印'hey'和'het'一次,然后,当我按下按钮时没有任何反应.

python tkinter

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

将滚动条添加到Tkinter中的一组小部件

我使用Python来解析日志文件中的条目,并使用Tkinter显示条目内容,到目前为止它非常好.输出是标签小部件的网格,但有时会有比屏幕上显示的行多的行.我想添加一个滚动条,看起来应该很容易,但我无法弄明白.

该文档暗示只有List,Textbox,Canvas和Entry小部件支持滚动条界面.这些似乎都不适合显示小部件网格.可以在Canvas小部件中放置任意小部件,但您似乎必须使用绝对坐标,因此我无法使用网格布局管理器?

我已经尝试将小部件网格放入框架,但这似乎不支持滚动条界面,所以这不起作用:

mainframe = Frame(root, yscrollcommand=scrollbar.set)
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议绕过这个限制吗?我不想在PyQt中重写并增加我的可执行图像大小,只需要添加一个滚动条!

python tkinter tkinter.scrollbar

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

如何摆脱Python Tkinter根窗口?

你知道一种聪明的方式来隐藏或以任何其他方式摆脱出现的根窗口Tk()吗?我想只使用一个普通的对话框.

我应该跳过对话框并将所有组件放在根窗口中吗?是可能的还是可取的?还是有更聪明的解决方案?

python winapi tk-toolkit tkinter

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

框架的Tkinter滚动条

我的目标是在一个框架中添加一个垂直滚动条,框架中有几个标签.一旦框架内的标签超过框架的高度,滚动条就会自动启用.经过搜索,我找到了这个有用的帖子.基于这一职位,我明白,为了达到我想要的,(纠正我,如果我错了,我是初学者),我要创建一个Frame第一,然后创建一个Canvas该框架内,坚持滚动条到帧好.之后,创建另一个框架并将其作为窗口对象放在画布中.所以,我终于想到了这个:

from Tkinter import *

def data():
    for i in range(50):
       Label(frame,text=i).grid(row=i,column=0)
       Label(frame,text="my text"+str(i)).grid(row=i,column=1)
       Label(frame,text="..........").grid(row=i,column=2)

def myfunction(event):
    canvas.configure(scrollregion=canvas.bbox("all"),width=200,height=200)

root=Tk()
sizex = 800
sizey = 600
posx  = 100
posy  = 100
root.wm_geometry("%dx%d+%d+%d" % (sizex, sizey, posx, posy))

myframe=Frame(root,relief=GROOVE,width=50,height=100,bd=1)
myframe.place(x=10,y=10)

canvas=Canvas(myframe)
frame=Frame(canvas)
myscrollbar=Scrollbar(myframe,orient="vertical",command=canvas.yview)
canvas.configure(yscrollcommand=myscrollbar.set)

myscrollbar.pack(side="right",fill="y")
canvas.pack(side="left")
canvas.create_window((0,0),window=frame,anchor='nw')
frame.bind("<Configure>",myfunction)
data()
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
  1. 我做得对吗?是否有更好/更聪明的方法来实现此代码给我的输出?
  2. 为什么我必须使用网格方法?(我尝试了放置方法,但画布上没有任何标签.)
  3. anchor='nw'在画布上创建窗口时使用有什么特别之处?

因为我是初学者,请保持简单的答案.

python tkinter scrollbar frame

55
推荐指数
3
解决办法
10万
查看次数

如何防止使用tkinter调整窗口大小?

我有一个程序,它创建一个窗口,根据复选框显示一条消息.

如何在显示消息并且未显示消息时使窗口大小保持不变?

from Tkinter import *

class App:
    def __init__(self,master):
        self.var = IntVar()
        frame = Frame(master)
        frame.grid()
        f2 = Frame(master,width=200,height=100)
        f2.grid(row=0,column=1)
        button = Checkbutton(frame,text='show',variable=self.var,command=self.fx)
        button.grid(row=0,column=0)
        msg2="""I feel bound to give them full satisfaction on this point"""
        self.v= Message(f2,text=msg2)
    def fx(self):
        if self.var.get():
            self.v.grid(column=1,row=0,sticky=N)
        else:
            self.v.grid_remove()

top = Tk()
app = App(top)            
top.mainloop()
Run Code Online (Sandbox Code Playgroud)

python tkinter python-2.7

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

在python中使用Tkinter编辑标题栏

我正在尝试向窗口添加自定义标题,但我遇到了麻烦.我知道我的代码不对,但是当我运行它时,它会创建2个窗口,一个只有标题tk,另一个更大的窗口有"Simple Prog".如何使tk窗口具有标题"Simple Prog"而不是具有新的附加窗口.我不认为我想要有Tk()部分,因为当我在我的完整代码中有这个时,会出现错误

from tkinter import Tk, Button, Frame, Entry, END

class ABC(Frame):
    def __init__(self,parent=None):
        Frame.__init__(self,parent)
        self.parent = parent
        self.pack()
        ABC.make_widgets(self)

    def make_widgets(self):
        self.root = Tk()
        self.root.title("Simple Prog")
Run Code Online (Sandbox Code Playgroud)

python tkinter titlebar

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

关于tkinter和ttk的新教程,适用于Python 3

我在哪里可以找到最现代化的教程,教tkinter一起ttk

Tkinter 似乎是Python 3的唯一方法(不建议使用Python 2),并且ttk给了我好看的GUI的希望.

tkinter ttk python-3.x

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

有没有办法让Tkinter文本小部件只读?

看起来它没有那个属性,但它对我来说真的很有用.

python text tkinter

53
推荐指数
8
解决办法
7万
查看次数