рд░реВрдмреА / рдЯреАрдХреЗ рдХрд╛ рдкрд░рд┐рдЪрдпред рдПрдХ рднрд╛рдЧ

рдЖрдкрдХрд╛ рджрд┐рди рд╢реБрдн рд╣реЛ!

рдкрд░рд┐рдЪрдп


рдЖрдЬ рдореЗрд░реА ToDo рд╕реВрдЪреА рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЖрдЬ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХрд╛рдо рдирд╣реАрдВ рд╣реИред рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдмреИрдардирд╛ рдФрд░ рдЕрдВрдд рддрдХ рджрд┐рдиреЛрдВ рдХреА рдЦрдмрд░реЗрдВ рдкрдврд╝рдирд╛, рдЖрдк рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЕрднреА рднреА рдПрдХ рдЦреБрд╢реА рд╣реИред рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрд╡реЗрджрди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ред рдЕрдЧрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рд░реВрдмреА + рдХреНрдпреВрдЯреА рдХреЗ рдПрдХ рд╕рдореВрд╣ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд░рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдореИрдВрдиреЗ рдХреНрдпреВрдЯреА рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдЕрднреА рддрдХ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдПрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреА рдереАред рдФрд░ рдореИрдВрдиреЗ рдЙрд╕реЗ рдкрд╛ рд▓рд┐рдпрд╛ред рдХреНрдпреЛрдВрдХрд┐ рдЯреАрдХреЗ рд░реВрдмреА рдХреЗ рд╕рд╛рде рдЖрдкреВрд░реНрддрд┐ рдХреА рдЬрд╛рддреА рд╣реИ, рдпрд╣ рдореЗрд░реА рдкрд╕рдВрдж рдереАред

рдорд░реАрдЬ рдХреЛ рдкрддрд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ


рдирд╛рдо, рд╕рдВрд░рдХреНрд╖рдХ: рдбреЗрд╡рд┐рдбреЗрдиреНрдХреЛ рдорд┐рдЦрд╛рдЗрд▓ рдпреВрд░реАрд╡рд┐рдЪ
рдЬрдиреНрдо рд╕реНрдерд╛рди:
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдореЗрд░реЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЯреАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЛрдЧрд╛ред
Tk (рдЕрдВрдЧреНрд░реЗрдЬреА рд╕реЗред рдЯреВрд▓рдХрд┐рдЯ - "рдЯреВрд▓реНрд╕ рдХрд╛ рдПрдХ рд╕реЗрдЯ", "рдЯреВрд▓рдХрд┐рдЯ") рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдореВрд▓ рддрддреНрд╡реЛрдВ рдХрд╛ рдПрдХ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ, рдЬрд┐рд╕реЗ рдУрдкрди рд╕реЛрд░реНрд╕ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдбреЙрдХреНрдЯрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣рд╛рдВ рд╣реИ


рд░реВрдмреА (рдЕрдВрдЧреНрд░реЗрдЬреА рд╕реЗред рд░реВрдмреА - "рд░реВрдмреА") - рдПрдХ рдЧрддрд┐рд╢реАрд▓, рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд, рддреЗрдЬ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╡рд╕реНрддреБ-рдЙрдиреНрдореБрдЦ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ред рднрд╛рд╖рд╛ рдореЗрдВ рдПрдХ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо-рд╕реНрд╡рддрдВрддреНрд░ рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рд╕рдЦреНрдд рдЧрддрд┐рд╢реАрд▓ рдЯрд╛рдЗрдкрд┐рдВрдЧ, рдПрдХ рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рдФрд░ рдХрдИ рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЕрдм рд╣рдореЗрдВ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдПред

рдЕрдкрдиреА рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗрдВ


рдЕрд░реНрдерд╛рддреН, рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб рд▓рд┐рдЦреЛред рдЙрд╕рдХреЗ рдмрд┐рдирд╛ рд╣рдо рдХрд╣рд╛рдБ рд╣реИрдВ?
рдЗрд╕рдХрд╛ рдХреЛрдб рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
require 'tk' app = TkRoot.new { title "Hello Tk!"; padx 50; pady 15 } TkLabel.new(app) { text "Hello, World!" pack { padx 100; pady 100; side "left" } } Tk.mainloop 


рдбреАрдмреНрд░реАрдлрд┐рдВрдЧ


рдЕрдм рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЖрдпрд╛рдд рдХрд┐рдпрд╛:
 require 'tk' 

рдЕрдЧрд▓рд╛, рд╣рдордиреЗ рд╣реИрд▓реЛ рдЯреАрдХреЗ рд╢реАрд░реНрд╖рдХ рдХреЗ рд╕рд╛рде рдПрдХ рдирдИ рд╡рд┐рдВрдбреЛ рдмрдирд╛рдИ ! 50 рдкрд┐рдХреНрд╕реЗрд▓ рдХреА рдКрдБрдЪрд╛рдИ рдФрд░ 15 рдкрд┐рдХреНрд╕реЗрд▓ рдХреА рдЪреМрдбрд╝рд╛рдИ рдХреЗ рд╕рд╛рде:
 app = TkRoot.new { title "Hello Tk!"; padx 50; pady 15 } 

рдлрд┐рд░ рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб рдирд╛рдордХ рдкрд╛рда рдХреЗ рд╕рд╛рде рдПрдХ рд╢рд┐рд▓рд╛рд▓реЗрдЦ рдмрдирд╛рдпрд╛ ! рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреЗ рд╕рд╛рде 100x100:
 TkLabel.new(app) { text "Hello, World!" pack { padx 100; pady 100; side "left" } } 

рдпрд╣рд╛рдБ рд╣рдо рдПрдХ рдЕрдкрд░рд┐рдЪрд┐рдд рдкреИрдХ рд╕реЗ рдорд┐рд▓реЗред рдпрд╣ рдХреНрдпрд╛ рд╣реИ?
рдкреИрдХ рдПрдХ рдкреИрдХрд░ рд╣реИ рдЬреЛ рдореВрд▓ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЖрдЗрдЯрдо (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд▓реЗрдмрд▓ рд╡рд┐рдЬреЗрдЯ) рдХреА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХрд░рддрд╛ рд╣реИред рджреЛ рдФрд░ рдкреИрдХрд░реНрд╕ рднреА рд╣реИрдВ:

рдФрд░, рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рднреВрд▓ рдЧрдпрд╛, рдпрд╣реА рд╣рдореЗрдВ рдорд┐рд▓рд╛ред рдХреНрдпрд╛ рд╣реБрдЖ рдерд╛?



рдШрдЯрдирд╛рдУрдВ


рдЕрдм рдореИрдВ рдлрдБрд╕рдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛рдУрдВ рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдБрдЧрд╛ред рдЪрд╛рд╣реЗ рд╡рд╣ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рд╣реЛ рдпрд╛ рдХрд┐рд╕реА рд╡рд┐рдЬреЗрдЯ рдкрд░ рдПрдХ рдХрд░реНрд╕рд░ред Tk рдореЗрдВ рдХрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реЛрддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН рдЖрда! рдпрд╣рд╛рдБ рд╡реЗ рд╣реИрдВ:

рдореИрдВрдиреЗ рдШрдЯрдирд╛рдУрдВ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдареАрдХ-рдареАрдХ рдЕрдиреБрд╡рд╛рдж рдХрд┐рдпрд╛, рди рдХрд┐ рд╕реНрд╡рдпрдВ рдШрдЯрдирд╛рдУрдВ рдХрд╛ред рдпрд╣ рдХрд╣рдиреЗ рд╕реЗ рдореЗрд░рд╛ рддрд╛рддреНрдкрд░реНрдп рд╣реИ рдХрд┐ рд╣рдо " ButtonPress-1 " рдИрд╡реЗрдВрдЯ (рдмрд╛рдПрдБ рдХреНрд▓рд┐рдХ) рдФрд░ " ButtonRelease-1 " рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдмрд╛рдПрдБ рдорд╛рдЙрд╕ рдмрдЯрди рдХреЛ рдЫреЛрдбрд╝реЗрдВ)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд╣рдо рджреЛ рдорд╛рдЙрд╕ рдмрдЯрди (рдмрд╛рдПрдВ рдФрд░ рджрд╛рдПрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: " ButtonPress-1 " (рдмрд╛рдПрдВ) рдФрд░ " ButtonPress-2 " (рджрд╛рдПрдВ)ред

рдпрд╣рд╛рдБ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╕рднреА рдШрдЯрдирд╛рдПрдБ рд╣реИрдВред

рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреА рдШрдЯрдирд╛ рдХреЛ рдкрдХрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:
 wdgt.bind('ButtonPress-1') { puts "LBM: I was pressed..." } 


рдпрд╛ рддреЛ:
 wdgt.bind('Control-ButtonPress-3', proc { puts "RBM + Ctrl: We was clicked..." }) 


рдФрд░ рд╡рд┐рдЬреЗрдЯ рдХреА рдШреЛрд╖рдгрд╛ рдХреЗ рдЕрдВрджрд░ рднреАред рдЗрд╕ рддрд░рд╣:
 wdgt = TkButton.new(app) { text "Click me!" command proc { puts "Button of nowhere: I was clicked..." } } 


рдЖрдЗрдП рд╣рдорд╛рд░реЗ рдЬреНрдЮрд╛рди рдХреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдареАрдХ рдХрд░реЗрдВ рдФрд░ рдпрд╣рд╛рдБ рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд▓рд╛рдЗрди рд▓рд┐рдЦреЗрдВ:
 require 'tk' app = TkRoot.new { title "Hello Tk!"; padx 50; pady 15 } but = TkButton.new(app) { text "Hello, World!" pack { padx 100; pady 100; side "left" } } but.bind("Enter", proc { but.text "Welcome!" }) but.bind("Leave", proc { but.text "Bye!" }) Tk.mainloop 


рдЬрдм рдЖрдк рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ, рддреЛ рд╣рдореЗрдВ рдЕрдкрдиреЗ рд▓рд┐рдП рдХреБрдЫ рдирдпрд╛ рдирд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛ред


рдЬрдм рддрдХ рд╣рдо рдХрд░реНрд╕рд░ рдХреЛ рдЕрдкрдиреЗ рдмрдЯрди рдкрд░ рдирд╣реАрдВ рд▓реЗ рдЬрд╛рддреЗред рдпрд╣рд╛рдБ рд╣рдореЗрдВ рдХреНрдпрд╛ рдорд┐рд▓рдирд╛ рдЪрд╛рд╣рд┐рдП:


рдЕрдм рдХрд░реНрд╕рд░ рдХреЛ рд▓реЗ рдЬрд╛рдПрдБ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдмрдЯрди рдиреЗ рд╣рдореЗрдВ рдЕрд▓рд╡рд┐рджрд╛ рдХрд╣ рджрд┐рдпрд╛ рд╣реИ:


рдореЗрдиреВ рдХреГрдкрдпрд╛


рдЕрдм рдореИрдВ рдлрдБрд╕рд╛рдиреЗ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдкрдиреЗ рдЬреНрдЮрд╛рди рдХреЛ рдордЬрдмреВрдд рдХрд░рдиреЗ рдФрд░ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдирдП рдореЗрдиреВ рд╡рд┐рдЬреЗрдЯ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд░рдЦрддрд╛ рд╣реВрдВред рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рд╣рдореЗрдВ рдореЗрдиреВ рдореЗрдВ рдЕрдкрдиреА рдкрд╕рдВрджреАрджрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдЪреБрдирдиреА рд╣реЛрдЧреАред рдЖрдЧреЗ рдореИрдВ рдиреЗрд╕реНрдЯреЗрдб рдХрдореЗрдВрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХреЛрдб рджреВрдВрдЧрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдХреЛ рд╕рдордЭрдиреЗ рд╕реЗ рдЖрдкрдХреЛ рдХреЛрдИ рдХрдард┐рдирд╛рдИ рдирд╣реАрдВ рд╣реЛрдЧреАред рддреЛ рдпрд╣рд╛рдБ рд╣реИ:
 require 'tk' #   app = TkRoot.new { #   title "Hello Tk!"; padx 50; pady 15 #     } lbl = TkLabel.new(app) { #   text "Something wasn't clicked yet..." #     pack { padx 100; pady 100; side "left" } #    } java_clicked = Proc.new { #   "Java"   lbl.text "Java was liked..." } cs_clicked = Proc.new { #   "C#"   lbl.text "C# was liked..." } cpp_clicked = Proc.new { #   "C++"   lbl.text "C++ was liked..." } py_clicked = Proc.new { #   "Python"   lbl.text "Python was liked..." } rb_clicked = Proc.new { #   "Ruby"   lbl.text "Ruby was liked..." } menu = TkMenu.new(app) #   menu.add('command', 'label' => "Java", 'command' => java_clicked) #   "Java" menu.add('command', 'label' => "C#", 'command' => cs_clicked) #   "C#" menu.add('separator') #   menu.add('command', 'label' => "C++", 'command' => cpp_clicked) #   "C++" menu.add('separator') #   menu.add('command', 'label' => "Python", 'command' => py_clicked) #   "Python" menu.add('command', 'label' => "Ruby", 'command' => rb_clicked) #   "Ruby" bar = TkMenu.new #      bar.add('cascade', 'menu' => menu, 'label' => "Click me, I want you!") #     app.menu(bar) #       Tk.mainloop #   ,     ? 

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдЕрд╕рд▓ рдореЗрдВ, рдпрд╣рд╛рдБ:


рдЕрдм рд╣рдорд╛рд░рд╛ рдореЗрдиреВ рдЦреЛрд▓реЗрдВ рдФрд░ "рдЬрд╛рд╡рд╛" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдпрд╣рд╛рдБ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ:


рдирд┐рд╖реНрдХрд░реНрд╖


рдЖрдЬ рдХреЗ рд▓рд┐рдП рдмрд╕ рдЗрддрдирд╛ рд╣реАред рдЗрд╕ рд╡рд┐рд╖рдп рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЖрдкрдХреЛ Tk рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдХрд░рд╛рдирд╛ рдерд╛, рдЬреЛ рдХрд┐ рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рднрд▓реЗ рд╣реА рдереЛрдбрд╝реЗ рд╕рддрд╣реА рд░реВрдк рд╕реЗ рд╕рдлрд▓ рд░рд╣рд╛ рд╣реЛред

рдкреАрдПрд╕ рдиреЗрдХреНрд╕реНрдЯ рд╡реАрдХреЗрдВрдб, рд╣рдо Tk рдореЗрдВ рд╡рд┐рдЬреЗрдЯреНрд╕ рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЧреБрдгреЛрдВ рдХреЗ рдЕрдзреНрдпрдпрди рдореЗрдВ рддрд▓реНрд▓реАрди рд╣реЛрдВрдЧреЗ, рдкрддрд╛ рд▓рдЧрд╛рдПрдБ рдХрд┐ рдХреНрдпрд╛ Tk рдореЗрдВ рд╡рд┐рдЬреЗрдЯреНрд╕ рд╣реИрдВ рдФрд░ рдПрдХ рдЬреИрдмрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдЬреЛ рдореИрдВрдиреЗ 30 рдорд┐рдирдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛, рд▓рд┐рдЦрдХрд░ рд╣рдорд╛рд░реЗ рдЬреНрдЮрд╛рди рдХреЛ рдордЬрдмреВрдд рдХрд░рддрд╛ рд╣реИред

рдЬрд▓реНрдж рдорд┐рд▓рддреЗ рд╣реИрдВ!

рдкреНрд░рдпреБрдХреНрдд рд╕рд╛рдордЧреНрд░реА:
рд░реВрдмреА - рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛
рдЯреАрдХреЗ - рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛
рд░реВрдмреА / рдЯреАрдХреЗ рдЧрд╛рдЗрдб

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ Tkinter рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдкрд░рд┐рдЪрдп рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ habradrug t3ns0r рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдЧрд╣рд░реА рдХреГрддрдЬреНрдЮрддрд╛ рд╡реНрдпрдХреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ ред

Source: https://habr.com/ru/post/In133931/


All Articles