Форум сайта python.su
import tkinter as tk from tkinter import ttk class Gui: def __init__(self): self.application_window = tk.Tk() self.add_modifier = tk.IntVar() self.create_widgets() def create_widgets(self): add_modifier = tk.Spinbox(self.application_window, from_=0, to=999) add_modifier.pack() button = ttk.Button(self.application_window, text='check', command=self.check) button.pack() def check(self): print(self.add_modifier.get()) program = Gui() program.application_window.mainloop()
Отредактировано August (Дек. 20, 2017 09:33:18)
Офлайн
import tkinter as tk from tkinter import ttk class Gui: def __init__(self): self.application_window = tk.Tk() self.create_widgets() def create_widgets(self): self.add_modifier = tk.Spinbox(self.application_window, from_=0, to=999) self.add_modifier.pack() button = ttk.Button(self.application_window, text='check', command=self.check) button.pack() def check(self): print(self.add_modifier.get()) program = Gui() program.application_window.mainloop()
Офлайн
FishHookНе, там надо переменные делать. Просто он спинбокс не подключил к переменной.self.add_modifier = tk.Spinbox
#!/usr/bin/env python3 import tkinter as tk from tkinter.constants import * class App(tk.Frame): def __init__(self, master=None): super().__init__(master) self.pack(fill=BOTH) self.create_widgets() def create_widgets(self): self.spin_box_var = tk.IntVar() self.spin_box = tk.Spinbox( self, from_=0, to=999, textvariable=self.spin_box_var) self.spin_box.pack() self.button_ok = tk.Button(self) self.button_ok.pack() self.button_ok.config(text='Ok', command=self.push_button_ok) def push_button_ok(self): print(self.spin_box_var.get()) if __name__ == '__main__': root = tk.Tk() win = App(root) win.master.title('Window') win.master.geometry('300x70+500+500') root.mainloop()
Отредактировано py.user.next (Дек. 20, 2017 11:09:33)
Офлайн
Спасибо! Работает и первый, более простой вариант от FishHook. А в чём преимущество подключения дополнительной переменной, как у py.user.next?
Меня сбило с толку, что для разных виджетов почему-то разные способы. Например в случае с ttk.Checkbutton никакой self. приписывать спереди не надо, а просто переменная прописывается в атрибутах.
dismiss_the_lowest = ttk.Checkbutton(self.application_window, variable=self.dismiss_the_lowest)
Офлайн
AugustВ том, что ты не привязан к элементу ввода. То есть в данный момент ты общаешься только с переменной и пишешь код только для неё. А то, что она связана со спинбоксом, этот код не знает. Таким образом ты легко можешь заменить элемент ввода на другой и при этом код, обрабатыващий переменную, этого даже не заметит. Так ты можешь менять внешний вид графического интерфейса без переписывания тонн кода.
А в чём преимущество подключения дополнительной переменной, как у py.user.next?
Отредактировано py.user.next (Дек. 20, 2017 12:38:13)
Офлайн