2014-06-30 87 views
2

我是新来的Tkinter,我有这样的代码在python:Python Tkinter按钮没有出现?

#import the tkinter module 
from tkinter import * 
import tkinter 


calc_window = tkinter.Tk() 
calc_window.title('Calculator Program') 


button_1 = tkinter.Button(text = '1', width = '30', height = '20') 
button_1 = '1' 

calc_window.mainloop() 

但是当我运行它时,按钮不会出现。有谁知道为什么?谢谢!

+1

你需要添加按钮calc_window –

+0

只是出于好奇,你为什么''从tkinter import *'和 'import tkinter'?这是多余的。一般来说,坚持后一种选择。 – CoryKramer

+0

为什么你不只是谷歌“tkinter按钮”?第一次打到这个优秀的例子填充页面:http://effbot.org/tkinterbook/button.htm – mhawke

回答

0
from tkinter import * 
import tkinter 


calc_window = tkinter.Tk() 
calc_window.title('Calculator Program') 
frame = Frame(calc_window) 
frame.pack() 


button_1 = tkinter.Button(frame,text = '1', width = '30', height = '20') 
button_1.pack(side=LEFT) 


calc_window.mainloop() 

尝试使用pack()添加按钮。我唐诺为什么ü试图分配button_1 = '1'在你的代码

一个整洁的例子:

from Tkinter import * 

class App: 

    def __init__(self, master): 

     frame = Frame(master) 
     frame.pack() 

     self.button = Button(
      frame, text="QUIT", fg="red", command=frame.quit 
      ) 
     self.button.pack(side=LEFT) 

     self.hi_there = Button(frame, text="Hello", command=self.say_hi) 
     self.hi_there.pack(side=LEFT) 

    def say_hi(self): 
     print "hi there, everyone!" 

root = Tk() 

app = App(root) 

root.mainloop() 
+0

按钮需要一个容器被包装,这不是你的第一个例子。 – mhawke

+0

@mhawke请立即检查 –

+0

这样更好。当你运行它会发生什么? – mhawke

2

获取一个小部件出现需要两个步骤:你必须创建窗口小部件,你必须将它添加到布局。这意味着您需要使用几何管理器之一packplacegrid将其放置在其容器中的某处。

例如,这里是让你的代码工作的一种方法:

button_1 = tkinter.Button(text = '1', width = '30', height = '20') 
button_1.pack(side="top") 

gridpack的选择是由你。如果你按照行和列排列,grid是有意义的,因为你可以在调用grid时指定行和列。如果你从左到右或从上到下排列东西,pack稍微简单一些,并且为了这个目的而设计。

注意:place很少使用,因为它专为精确控制而设计,这意味着您必须手动计算x和y坐标以及小部件的宽度和高度。这很乏味,并且通常会导致对主窗口中的更改做出响应的小部件(例如用户调整大小时)。你最终的代码也有点不灵活。

需要了解的重要一点是,您可以在同一个程序中同时使用packgrid,但不能在具有相同父级的不同窗口小部件上使用这两种窗口。

0

你没有包装button_1。代码是:

from tkinter import * 

root = Tk() 
root.title('Calculator Program') 

button_1 = Button(root, text='1', width='30', height='20') 
button_1.pack() 

root.mainloop() 

很简单! 希望这有助于!