Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
除了使用tkinter Python进行网格设计,还有其他设计方法吗?_Python_Python 3.x_Tkinter - Fatal编程技术网

除了使用tkinter Python进行网格设计,还有其他设计方法吗?

除了使用tkinter Python进行网格设计,还有其他设计方法吗?,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,请对我耐心一点,我今年16岁,大约去年9月才开始在codeacademy上编程。不管怎么说,我正在创建这个程序,这样我原本就可以拿到期末数学成绩,但现在我被告知学校可能想要使用它。现在,我必须使GUI变得漂亮等等,这样做时我遇到了一个问题,网格无法与同一窗口中的“.pack()”小部件(如我的“root”)一起工作,因此我的问题是: 我如何像移动网格一样移动东西,并将它们放置在我想要的地方,而不受“左、右、下、上”的限制 代码如下: from tkinter import * import tk

请对我耐心一点,我今年16岁,大约去年9月才开始在codeacademy上编程。不管怎么说,我正在创建这个程序,这样我原本就可以拿到期末数学成绩,但现在我被告知学校可能想要使用它。现在,我必须使GUI变得漂亮等等,这样做时我遇到了一个问题,网格无法与同一窗口中的“.pack()”小部件(如我的“root”)一起工作,因此我的问题是:

我如何像移动网格一样移动东西,并将它们放置在我想要的地方,而不受“左、右、下、上”的限制

代码如下:

from tkinter import *
import tkinter.messagebox
import os
from tkinter import font

from tkinter import ttk

root = Tk()
root.geometry("800x500")
root.configure(background="grey")
root.title("Mathematical Assistance Program")

#********Functions**********#
def About():
    Beep = tkinter.messagebox.askquestion("About", "M.A.P was created by Mykel Mills using his amazing programming skills for math  is he awesome or what?")
    if Beep == "yes":
        tkinter.messagebox.showinfo("Thanks", "Thank you very much!")
    else:
        os.startfile("killthem.flv")
def Author():
    AuthorWindow = Toplevel()
    AuthorWindow.geometry("500x200")
    AuthorWindow.title("The Developer")
    photo = PhotoImage(file="pain.gif")
    Label1 = Label(AuthorWindow, image=photo)
    Label1.image = photo
    Label1.grid(row=0, column=0)
def AddingMatrices():
    os.startfile("MAdd.mp4")
    tkinter.messagebox.showinfo("Here", "I've opened a PDF for you for questions.")
    os.startfile("1.pdf")
def MultiplyMatrices():
    os.startfile("MM1.mp4")
    tkinter.messagebox.showinfo("Part 2", "Let's begin part 2!")
    os.startfile("MM2.mp4")
    tkinter.messagebox.showinfo("Worksheet", "I'll open a worksheet for you!")
    os.startfile("MM.pdf")



#*******Menu and Sub Menu**********#
menu = Menu(root)
root.config(menu=menu)
subMenu = Menu(menu)
CSsubMenu = Menu(menu)
MatrixSubMenu = Menu(menu)
menu.add_cascade(label="Home", menu=subMenu)
menu.add_cascade(label="Choose Topic", menu=CSsubMenu)
subMenu.add_command(label="About", command=About)
subMenu.add_command(label="Developer", command=Author)
subMenu.add_separator()
subMenu.add_command(label="Help", command=root.quit)
subMenu.add_command(label="Quit", command=root.quit)
MatrixSubMenu.add_command(label="Adding and Subtracting Matrices", command=AddingMatrices)
MatrixSubMenu.add_command(label="Multiplying Matrices", command=MultiplyMatrices)
CSsubMenu.add_cascade(label="Matrices", menu=MatrixSubMenu)
CSsubMenu.add_command(label="Vectors", command=root.quit)
CSsubMenu.add_command(label="Circle Theorom", command=root.quit)
CSsubMenu.add_command(label="Algebra", command=root.quit)

#*********Status Bar**********#
status = Label(root, text="Welcome to M.A.P, I will be your host today, My name is Bob, Please request for my help by clicking the help button", bd=1, relief=SUNKEN, anchor=W)
status.pack(side=BOTTOM, fill=X)

#**********To do list******************
lf = LabelFrame(root, text="To Do", padx=5, pady=5, bg="grey")
lf.pack(side=LEFT)
label = Label(lf, text="1. Add Vector videos and questions", bg="grey")
label1 = Label(lf, text="2. Complete all other possible topics", bg="grey")
label2 = Label(lf, text="3. Create UI to be more User Friendly", bg="grey")
label3 = Label(lf, text="4. Create point system with rewards", bg="grey")
label4 = Label(lf, text="5. Design I.EM.S as soon as possible ", bg="grey")
label.pack()
label1.pack()
label2.pack()
label3.pack()
label4.pack()

#*******Home Page Title*********

label5 = Label(root, text="M.A.P", font=("Helvetica", 50), bg="grey")
label5.pack(side=TOP)









root.mainloop()
万分感谢

使用.place()

在绝对定位中,程序员以像素为单位指定每个小部件的位置和大小。如果调整窗口大小,小部件的大小和位置不会改变

.place()使用x和y坐标指定窗口上的位置

例如:

Label.place(x=40, y=50)
下面是对.pack()、.grid()和.place()的完整解释的URL:

请注意:
.grid()是制作Tkinter窗口的一种更好、更有组织的方法。如果您使用STICKY参数(它允许您比单个单元格更具体),它就没有您想象的那么有限了。我不会深入网格,因为这不是问题的一部分。但是我宁愿你使用.grid()而不是.place()

,所以使用
grid()
而不是
pack()
?你说的“如此有限的左、右、下、上范围”是什么意思?你想怎么说才能把东西移到哪里?@BrenBarn LEFT,RIGHT,BOTTOM,TOP并没有给我太多的选项来定位我的东西,不像.grid()提供了列和行。TigerhawkT3但要做到这一点,我必须将所有的.pack()重写为.grid(),如果.place()不能正常工作,我可能会这样做