Я работаю над программой на Python, использующей Enthought Canopy (для сбора данных).Однако у меня есть проблема с использованием tkinter при работе в среде python 3.5.Я не могу получить значения своих радиокнопок с помощью функции var.get()
.(оба определяют его как tk.IntVar()
при использовании целых чисел или как tk.StringVar()
, как в моем примере кода)
Также основной цикл не останавливается при нажатии кнопки выхода, окно tkinter закрывается, но программа продолжает работать,
При переключении в среду Python 2.7 у меня нет этих проблем.Ниже приведена урезанная версия кода.
Заранее спасибо за помощь
import tkinter as tk
class GUI:
def __init__ (self, master):
self.master = master #Defining the root window
#Create container
frame = tk.Frame(master)
#Defining the labels
fontName = 'Helvetica 10'
self.waveform = tk.StringVar()
self.sawtoothRadio = tk.Radiobutton(frame, text='Sawtooth',
variable=self.waveform, value="sawtooth")
self.triangleRadio = tk.Radiobutton(frame, text='Triangle',
variable=self.waveform, value="triangle")
self.triangleRadio.select()
self.startButton = tk.Button(frame, text="Start", font = fontName, command=self.calibrate)
#Structuring the GUI
self.sawtoothRadio.grid(row=9, column=0)
self.triangleRadio.grid(row=9, column=1)
self.startButton.grid(row=10, column=1)
frame.pack(side=tk.LEFT)
def draw_graph(self, right_frame):
#Plotting the graph
if self.waveform.get() == "sawtooth":
sawtooth = True
else:
sawtooth = False
def calibrate(self):
#Plotting the graph
if self.waveform.get() == "sawtooth":
sawtooth = True
else:
sawtooth = False
root = tk.Tk()
newWindow = GUI(root)
root.mainloop()