【发布时间】:2018-01-20 02:34:09
【问题描述】:
import os
import tkinter
import tkinter.font as tkFont
from tkinter import *
coord1 = "0,0"
coord2 = "0,0"
EQ = "y = mx + b"
def tkinter_window():
global coord1Entry
global coord2Entry
global coord1
global coord
tk = Tk()
tk.title("Math Graph")
#create
font1 = tkFont.Font(family="Source Code Pro", size=16)
font2 = tkFont.Font(family="Source Code Pro", size=10)
coord1Label = Label(tk, text='X coordinate 1:\n( "x,y", no parentheses )', font=font1)
coord2Label = Label(tk, text='Y coordinate 2:\n( "x,y", no parentheses )', font=font1)
这是我定义似乎使用相同数字的两个条目的部分:
coord1Entry = Entry(tk, textvariable=coord1)
coord2Entry = Entry(tk, textvariable=coord2)
所以问题是,当我像往常一样运行程序时,它们什么也没有显示。但是,只要我在其中一个条目中输入一个字符,它们都会显示该字符。我不明白为什么,他们使用不同的变量?有人可以帮我吗?
coordButton = Button(tk, text="Done! (use coordinates)", font=font1)
equationLabel = Label(tk, text="Equation: y =", font=font1)
equationEntry = Entry(tk, textvariable=EQ, font=font1)
equationButton = Button(tk, text="Done! (use equation)", font=font1)
iwantanswersCheckbox = Checkbutton(tk, text="I want m, x, b, intercept and x-intercept", font=font1)
iwantgraphCheckbox = Checkbutton(tk, text="I want a graph", font=font1)
info1Label = Label(tk, text="***Both boxes may be checked***", font=font2)
#pack
coord1Label.grid(row=0, column=0, padx=15, pady=15)
coord2Label.grid(row=1, column=0, padx=15, pady=15)
coord1Entry.grid(row=0, column=1, padx=5, pady=5)
coord2Entry.grid(row=1, column=1, padx=5, pady=5)
coordButton.grid(row=2, columnspan=2, padx=5, pady=15)
equationLabel.grid(row=3, column=0, sticky=E, padx=5, pady=5)
equationEntry.grid(row=3, column=1, padx=5, pady=5)
equationButton.grid(row=4, columnspan=2, padx=5, pady=15)
iwantanswersCheckbox.grid(row=5, columnspan=2, padx=5, pady=5)
iwantgraphCheckbox.grid(row=6, columnspan=2)
info1Label.grid(row=7, columnspan=2)
os.system('''/usr/bin/osascript -e 'tell app "Finder" to set frontmost of process "Python" to true' ''')
tk.mainloop()
tkinter_window()
def matplotlib_window():
import matplotlib.pyplot as plt
coordX[0] = Xcoord1Entry.get()
coordX[1] = Xcoord2Entry.get()
coordY[0] = Ycoord1Entry.get()
coordY[1] = Ycoord2Entry.get()
plt.plot(coordX, coordY)
plt.legend(loc=4)
plt.xlabel("x")
plt.ylabel("y")
plt.show()
问题所在的主要代码区域(根据要求):
import tkinter
import tkinter.font as tkFont
from tkinter import *
coord1 = "0,0"
coord2 = "0,0"
def tkinter_window():
global coord1Entry
global coord2Entry
global coord1
global coord
tk = Tk()
tk.title("Math Graph")
#create
font1 = tkFont.Font(family="Source Code Pro", size=16)
font2 = tkFont.Font(family="Source Code Pro", size=10)
coord1Label = Label(tk, text='X coordinate 1:\n( "x,y", no parentheses )', font=font1)
coord2Label = Label(tk, text='Y coordinate 2:\n( "x,y", no parentheses )', font=font1)
coord1Entry = Entry(tk, textvariable=coord1)
coord2Entry = Entry(tk, textvariable=coord2)
#pack
coord1Label.grid(row=0, column=0, padx=15, pady=15)
coord2Label.grid(row=1, column=0, padx=15, pady=15)
coord1Entry.grid(row=0, column=1, padx=5, pady=5)
coord2Entry.grid(row=1, column=1, padx=5, pady=5)
tk.mainloop()
tkinter_window()
【问题讨论】:
-
请为您遇到的问题创建一个minimal reproducible example,而不是切片代码。
-
您可能希望查看this 以决定何时使用
textvariable选项。
标签: python python-3.x tkinter