рд╣рдо C ++ рдФрд░ GTKMM рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ GTK + рдкрд░ рдПрдХ рдПрдкреНрд▓реАрдХреЗрд╢рди рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ

рд╕реВрдХреНрддрд┐


рдПрдХ рдмрд╛рд░ рдореЗрд░реА рдкрддреНрдиреА рдиреЗ рдореБрдЭреЗ рдЙрд╕реЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬреЛ рдкрд░реНрдпрд╛рдкреНрдд рдбреЗрдЯрд╛ рд╣реЛрдиреЗ рдкрд░ рдЖрдВрдХрдбрд╝реЗ, рдкрд░рд┐рдзрд┐ рдФрд░ рдЕрдиреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреА рдЧрдгрдирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рддреНрд░рд┐рдХреЛрдг рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдкрдХреНрд╖реЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкрдХреНрд╖реЛрдВ рдХреЛ рджрд░реНрдЬ рдХрд░реЗрдВ, рдмрдЯрди рджрдмрд╛рдПрдВ рдФрд░ рдХреНрд╖реЗрддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдпрд╛ рдХреЗрд╡рд▓ рдкрдХреНрд╖ рдФрд░ рджреЛ рдХреЛрдиреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдмрд╛рдХреА рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдХреЛрдИ рднреА рдбреЗрдЯрд╛ред
рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдкрд┐рдЫрд▓реЗ 5 рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдореИрдВ рдХреЗрд╡рд▓ рдПрдХ рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдкреАрдПрдЪрдкреА, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрднреА-рдХрднреА рдХреБрдЫ рд░реВрдмреА рдФрд░ рдкрд░реНрд▓ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рднрд╛рд╖рд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдХрдВрдкреНрдпреВрдЯрд░ рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдЕрд░реНрде рдХреЛ рд╕рдордЭрдирд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдХрдо рд╕реЗ рдХрдо рдЕрд╕реЗрдВрдмрд▓рд░ (рдПрдХ рдмрд╛рд░ рднреА рдЕрд╕рдВрддреБрд╖реНрдЯ рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдереЛрдбрд╝рд╛ рдкреИрдЪрд┐рдВрдЧ рдореЗрдВ рд▓рдЧреЗ рд╣реБрдП рд╣реИрдВ)ред рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдЬрдм рдореИрдВрдиреЗ рдбреЗрд╕реНрдХрдЯреЙрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦреЗ, рддреЛ рдореБрдЭреЗ рдЕрдм рдпрд╛рдж рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдлрд┐рд░ рдореИрдВрдиреЗ рдПрдХ рдбреЗрд╕реНрдХрдЯреЙрдк рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рддрд╛рдХрд┐ рдореЗрд░реА рдкрддреНрдиреА рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рдЕрднрд╛рд╡ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рд╣рдЬ рд╣реЛ рдФрд░ рдЙрд╕рдХреЗ рд▓реИрдкрдЯреЙрдк рдкрд░ PHP рдХреЗ рд╕рд╛рде рдПрдХ рд╡реЗрдм рд╕рд░реНрд╡рд░ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереАред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ C ++ рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдЕрдкрдирд╛ рд╣рд╛рде рдЖрдЬрд╝рдорд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рддреЛ рдареАрдХ рд╣реИред рдореЗрд░реА рдкрддреНрдиреА рд▓рд┐рдирдХреНрд╕ рдЙрдмрдВрдЯреВ рд▓реИрдкрдЯреЙрдк рдкрд░ рд╣реИред рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо рдпреВрдирд┐рдЯреА рд╣реИ, рдЬреЛ Gnome3 рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдФрд░ рдЬрд╣рд╛рдВ рдЧрдиреЛрдо рд╣реИ, рд╡рд╣рд╛рдВ рдЬреАрдЯреАрдХреЗ + рд╣реИред
рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ Gtk + рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрд╕реНрдХрдЯреЙрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ? рдмрд┐рд▓реНрд▓реА рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ!

рдЬреАрдЯреАрдХреЗ + рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рд╕рдордЭрдирд╛


рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореЗрд░реА рд╡рд╕реНрддреБ-рдЙрдиреНрдореБрдЦ рд╕реЛрдЪ рдЗрддрдиреА рдШрдиреАрднреВрдд рд╣реИ рдХрд┐ рдУрдУрдкреА рдХреЗ рдкреВрд░реНрдг рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд┐рдирд╛, рдореИрдВ рдмрд╣реБрдд рд╕рд╣рдЬ рдирд╣реАрдВ рд╣реВрдВред рдореИрдВрдиреЗ рдЕрдкрдиреА рдХрд╕реНрдЯрдо рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ GTK + рдХреЙрд▓ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓рдкреЗрдЯрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдмреЗрд╢рдХ, рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕реА + + рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рд░реНрдорд╛рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛, рдмрд┐рд▓реНрдХреБрд▓ рдЕрд╡реНрдпрд╡рд╕рд╛рдпрд┐рдХ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ред рдХрд╣рдиреЗ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рд╕реНрдЯреНрд░реЙрдиреНрдЬрдЕрдк рдЖрдзреЗ рд╕реЗ рдХрдо рдкрдврд╝рд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдореЗрд░рд╛ рдкреВрд░рд╛ рдУрдУрдкреА рдЖрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╕реЗ рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ - рдкреАрдПрдЪрдкреА рд╕реЗред рдмрджрд╕реВрд░рдд, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛ред рддрддреНрд╡реЛрдВ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛, рдПрдХ рд╡рд┐рдВрдбреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛, рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рдерд╛ред рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЖрд╡реЗрджрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдЗрд╕реЗ рдПрдХ рд╕рд╛рд▓ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред рдлрд╝реНрд░реАрдЬрд╝ред рд▓реЗрдХрд┐рди рдЕрдЪрд╛рдирдХ рдореИрдВ GTKMM рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдЖрдпрд╛ - GTK + GUI рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ C ++ - рдЗрдВрдЯрд░рдлрд╝реЗрд╕ред рдФрд░ рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕ рдкрд░рд┐рддреНрдпрдХреНрдд рдЖрд╡реЗрджрди рдХреЛ рд▓рд┐рдпрд╛ рдФрд░ рдЗрд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рдмреЗрд╢рдХ, рдореИрдВрдиреЗ рдмреБрдирд┐рдпрд╛рджреА рд╕реНрд╡-рд▓рд┐рдЦрд┐рдд рдХрдХреНрд╖рд╛рдПрдВ рдмрд╛рд╣рд░ рдлреЗрдВрдХ рджреАрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдЬреАрдЯреАрдХреЗрдПрдордПрдо рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ред рдпрд╣рд╛рдБ рдЗрд╕ рдЕрджреНрднреБрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдЦреЛрдЬ рдореЗрдВ рдореЗрд░рд╛ рдЕрдиреБрднрд╡ рд╣реИ, рдореИрдВ рдЖрдкрдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдореЗрд░реЗ рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВред рддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдореИрдВ рддреБрд░рдВрдд рдорд╛рдлреА рдорд╛рдВрдЧрддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реИ (рдЕрдзрд┐рдХ рд╕рдЯреАрдХ, рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдкреБрдирд░реНрдЬреАрд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдкрддреНрд░ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдХрд╛ рд╕реНрдерд╛рди, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЖрд╡реЗрджрди рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд▓рд┐рдЦрд╛ рдФрд░ рдЧрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗред рдЕрдм рдпрд╣ GtkBuilder рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдЗрд╕ рдкрд░ рдФрд░ рдЕрдзрд┐рдХред
рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ

C ++ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ main() рдлрд╝рдВрдХреНрд╢рди рд╣реИред рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдореЗрдВ, рдпрд╣ рд╣рдорд╛рд░реЗ рдлреЙрд░реНрдо рдХреЛ GtkBuilder рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд▓реЛрдб рдХрд░реЗрдЧрд╛, рдЗрд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рдВрджреЗрд╢ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЪрдХреНрд░ рдХреЛ рд╢реБрд░реВ рдХрд░реЗрдЧрд╛ред
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ
 Glib::RefPtr<Gtk::Application> app = Gtk::Application::create(argc, argv, "org.apmpc.geometry"); 

рдЖрдЧреЗ рд╣рдо рдЕрдкрдирд╛ рдлреЙрд░реНрдо рдмрдирд╛рдПрдВрдЧреЗ
 builder = Gtk::Builder::create_from_file(UI_FILE); 

рдлреЙрд░реНрдо рдХреЛ рдХрдХреНрд╖рд╛ рдореЗрдВ get_widget_derived - рд╣реИрдВрдбрд▓рд░ (рдХреНрд▓рд╛рд╕ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ get_widget_derived Gtk::Window рд╕реЗ get_widget_derived рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо get_widget_derived рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
 builder->get_widget_derived("MainWindow", appwindow); 

рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рд╣реИрдВрдбрд▓рд░ рдХреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЫреЛрдЯреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ, рдЫреЛрдЯреЗ рд░реВрдк рдпрд╛ рдзрд╛рд░реНрдорд┐рдХ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛рдПрдВ рдирд╣реАрдВ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк Gtk::Window рд╡рд░реНрдЧ рдХреА рд╡рд╕реНрддреБ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ get_widget рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЦреИрд░, рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБ рдЖрд╡реЗрджрди рд╕рдВрджреЗрд╢ рд▓реВрдк рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реИ
 return app->run(*appwindow); 

рдЖрд╡реЗрджрди

рджреЗрд░ рд╕реЗ, рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдореИрдВ рдЖрд╡реЗрджрди рдХреЗ рдШрдЯрдХреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ред рдЗрд╕рдореЗрдВ рджреЛ рд░реВрдк рд╣реЛрддреЗ рд╣реИрдВред рдкрд╣рд▓реА рдореБрдЦреНрдп рдЦрд┐рдбрд╝рдХреА рд╣реИред рдЗрд╕рдореЗрдВ рдЖрдХреГрддрд┐рдпреЛрдВ рдХреЗ рдмрдЯрди рд╣реИрдВред

рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ - рдЖрдХрд╛рд░ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рдЕрдЧрд▓рд╛, рджреВрд╕рд░рд╛ рд░реВрдк рдЦреБрд▓рддрд╛ рд╣реИ - рдЖрдВрдХрдбрд╝рд╛ рд╡рд┐рдВрдбреЛред

рдмрд╛рдИрдВ рдУрд░ рдорд╛рди рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рд╣реИрдВ, рджрд╛рдИрдВ рдУрд░ - рдЪрдпрдирд┐рдд рдЖрдХреГрддрд┐ рдХрд╛ рдЖрдВрдХрдбрд╝рд╛ред рдбрд┐рдЬрд╝рд╛рдЗрди рдиреЗ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдЖрдХреГрддрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛, рдЗрд╕рд▓рд┐рдП рдореБрдЦреНрдп рд╡рд┐рдВрдбреЛ рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдЖрдХрд╛рд░ рдЪрдпрди рдмрдЯрди рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред
MainWindow рд╡рд░реНрдЧ Gtk::Window рдореБрдЦреНрдп рдкреНрд░рдкрддреНрд░ Gtk::Window рд▓рд┐рдП Gtk::Window рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред рдЗрд╕ рд╡рд░реНрдЧ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ, рдЖрдХрд╛рд░ рдмрдЯрди рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрддрд╛ рд╣реИред рдмрдЯрди рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХрд╛ рднрдВрдбрд╛рд░ m_pvShapeButtons рд╡реЗрдХреНрдЯрд░ рд╣реИред
 m_pvShapeButtons.push_back(new Gtk::Button(CShape::getShapeName(i+1))); 

clicked рдИрд╡реЗрдВрдЯ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдмрдЯрди рдХреЛ MainWindow::onShapeButtonClick(int iShape) рдкрд░ clicked рдХрд░реЗрдВ MainWindow::onShapeButtonClick(int iShape)
 m_pvShapeButtons.at(i)->signal_clicked().connect( sigc::bind<int> (sigc::mem_fun( *this, &MainWindow::onShapeButtonClick), (i+1) ) ); 

рдореБрдЭреЗ рдХреНрд▓рд┐рдХ рдХрд┐рдП рдЧрдП рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рд╡рд┐рдзрд┐ рдореЗрдВ рд╢реЗрдк рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдПрдХрд▓ CShape рдЖрдХреГрддрд┐ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╡рд░реНрдЧ рд╣реИред рдЗрд╕рдореЗрдВ рдЖрдХреГрддрд┐рдпреЛрдВ рдХреЗ рдЕрдиреНрдп рд╡рд░реНрдЧреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреЛ CShape рд╡рд░реНрдЧ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рд╣реИрдВред рдЙрдирдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбреЗрдЯрд╛ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реАрд▓реНрдб, рдЗрди рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЗ рдирд╛рдо рдФрд░ рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП рд╕реВрддреНрд░ рд╣реИрдВред
рдЦреИрд░, рдХрдВрдЯреЗрдирд░ рдФрд░ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЛ рдмрдЯрди рд╕рдВрд▓рдЧреНрди рдХрд░рдирд╛ рди рднреВрд▓реЗрдВ
 m_pShapeButtonBox->pack_end(*m_pvShapeButtons.at(i)); m_pvShapeButtons.at(i)->show(); 

рдЬрдм рдЖрдк рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдПрдХ рдФрд░ рд╡рд┐рдВрдбреЛ рдЦреЛрд▓рддреЗ рд╣реИрдВред рд╕реВрдЪрдХрд╛рдВрдХ рджреНрд╡рд╛рд░рд╛, рд╣рдо рдбреЗрдЯрд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ рд▓рд┐рдП рдЖрдХрд╛рд░ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдлрд╝реАрд▓реНрдб рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдореЗрдВ рддреАрди рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВ - Gtk::Box рдпреБрдХреНрдд Gtk::Box рдХрдВрдЯреЗрдирд░ Gtk::Label рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдФрд░ рдЯреЗрдХреНрд╕реНрдЯ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб Gtk::Entry рдХрд╛ рдирд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Gtk::Label ред рдпрд╣ рд╕рдм CEditBox рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд░реНрдЧ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рдореЗрдВ рдЯрд╛рдЗрдк рд░реВрдкрд╛рдВрддрд░рдг рдХреЗ рд╕рд╛рде рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рддрд░реАрдХреЗ рднреА рд╢рд╛рдорд┐рд▓ рд╣реЛрдВрдЧреЗред

рд╢реЗрдкрд╡рд┐рдВрдбреЛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ, рдЪрдпрдирд┐рдд рдЖрдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЦреНрдпрд╛ CEditBox ред рдЪрд▓реЛ рдЦрд┐рдбрд╝рдХреА рдХреЗ рджрд╛рдИрдВ рдУрд░ рдПрдХ рдЖрдХреГрддрд┐ CCanvas рд╣реИрдВ рдЬрд╣рд╛рдВ CCanvas рд╡рд░реНрдЧ рдХрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ CCanvas , рдЬреЛ рдХрд┐ Gtk::DrawingArea рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ Gtk::DrawingArea ред onDraw рдЗрд╡реЗрдВрдЯ рдкрд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╣реЛрддрд╛ рд╣реИред рдЖрдХреГрддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдЖрдВрдХрдбрд╝рд╛ рд╡рд░реНрдЧ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИред рдбреНрд░реЙ рдХреНрд▓рд╛рд╕ рдбреНрд░реЙ рд╡рд┐рдзрд┐ рдЧреНрд░рд╛рдлрд┐рдХ рдкреНрд░рд┐рдорд┐рдЯрд┐рд╡реНрд╕ (рд▓рд╛рдЗрдиреНрд╕, рд╕рд░реНрдХрд▓, рдЯреЗрдХреНрд╕реНрдЯ) рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП CCanvas рдХреНрд▓рд╛рд╕ CCanvas рдХреЛ CCanvas рдХрд░рддреА рд╣реИред

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


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

рдпреБрдкреАрдбреАред рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рдПрдХ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╛рддреНрдордХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рджреГрд╖реНрдЯрд┐рдХреЛрдг, рдпрд╛ рдмрд▓реНрдХрд┐ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЧрдгрд┐рддреАрдп рд╕рдордЭ рдореЗрдВ рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдЙрдкрдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рд╢реБрд░реВ рдореЗрдВ рд╕реЛрдЪрд╛ рдерд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рднрд╛рд╖рд╛рдПрдБ: LISP, Erlang, Scalaред C рдФрд░ C ++ рдкреНрд░рдХреНрд░рд┐рдпрд╛рддреНрдордХ рднрд╛рд╖рд╛рдПрдВ рд╣реИрдВред


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


All Articles