将一个Button放入python tkinter中的一个框架中

时间:2015-07-23 12:26:16

标签: python tkinter

我正在尝试模板我的tkinter应用程序。 但是我无法将按钮放入我的相框中。

Frame是否是用作模板的正确控件? 或者有什么不同的东西。

from Tkinter import *

root = Tk()

frame = Frame(root, height="200", width="200", bg="green").pack()
b = Button(frame, text="Hell World").pack(padx="10", pady="10")

z = Label(root, text="OUTSIDE").pack()

root.mainloop()

这是我的代码。

代码运行,但按钮位于绿框下方。但我希望在框架内有这个按钮。

这可能吗?

1 个答案:

答案 0 :(得分:6)

<svg width="100%" height="120" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid meet">
<style scoped="true">
@keyframes enlarge {
  0%  {r: 10;}
  30% {r: 10;}
  100% {r: 100%;}
}
#holecircle {
  animation: enlarge 4s alternate infinite;
}
</style>
 <defs>  
  <pattern id="pattern" x="0" y="0" width="480" height="480" patternUnits="userSpaceOnUse" patternTransform="matrix(0.04 0 0 0.04 0 10)">
    <path fill="black" d="m363.29999,363.89999c-12.89999,-4.60001 -31.39999,-6.20001 -43.20001,-8.80002c-6.79999,-1.5 -16.69998,-5.29999 -20,-9.19998c-3.29999,-4 -1.29999,-40.89999 -1.29999,-40.89999s6.10001,-9.60001 9.39999,-18s6.89999,-31.40001 6.89999,-31.40001s6.80002,0 9.20001,-11.89999c2.60001,-13 6.60001,-18.40001 6.10001,-28.10001c-0.5,-9 -5.20001,-9.5 -5.70001,-9.5l0,0c0,0 4.89999,-13.60001 5.60001,-42.39999c0.80002,-34.09999 -25.29999,-67.7 -74.29999,-67.7s-75,33.5 -74.3,67.60001c0.60001,28.7 5.60001,42.39999 5.60001,42.39999l0,0c-0.5,0 -5.2,0.5 -5.7,9.5c-0.5,9.7 3.59999,14.89999 6.09999,27.89999c2.40001,11.90001 9.2,12 9.2,12s3.60001,23.10001 6.90001,31.5c3.3,8.5 9.39999,18 9.39999,18s2,36.89999 -1.3,40.89999c-3.29999,4 -13.2,7.70001 -20,9.20001c-11.89999,2.60001 -30.29999,4.29999 -43.2,8.89999c-12.89999,4.60001 -52.7,20.10001 -52.7,52.10001l160,0l160,0c0,-32 -39.79999,-47.5 -52.70001,-52.10001z"/>
  </pattern>
 </defs>
 <g>
  <clipPath id="clip">
    <circle cx="50%" cy="50%" r="10" id="holecircle"/>
  </clipPath>
  <rect x="0" y="0" width="100%" height="100%" style="fill: url(#pattern);" clip-path="url(#clip)"/>   
 </g>
</svg>

执行此行后,frame = Frame(root, height="200", width="200", bg="green").pack() 等于frame,因为None返回的是pack()。如果要保留对它的引用,则需要分配一个小部件并将其打包在不同的行上。

frame = Frame(root, height="200", width="200", bg="green")
frame.pack()

bz相同,但您从不使用它们,因此它们并不重要。

相关问题