Qt рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдмрд╣реБрдд рд╕рдореГрджреНрдз рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рдЬреЗрдЯреНрд╕ рдХрд╛ рд╕реЗрдЯ рд╕реАрдорд┐рдд рд╣реИред рдпрджрд┐ рдЙрдкрд▓рдмреНрдз рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдХреБрдЫ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╕рдмрд╕реЗ рд╕рд░рд▓ рддрд░реАрдХрд╛ рд╣реИ - рддреИрдпрд╛рд░ рдЪрд┐рддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рдЗрд╕рдореЗрдВ рдЧрдВрднреАрд░ рдХрдорд┐рдпрд╛рдВ рд╣реИрдВ: рдПрдХ рдлрд╝рд╛рдЗрд▓ рдпрд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛, рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рдФрд░ рдЫрд╡рд┐ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреА рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреАред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реЗрдХреНрдЯрд░ рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рд╡реЗрдХреНрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред
рдкреНрд░рд╕реНрддрд╛рд╡рдирд╛
рдпрд╣ рд╕рдм рдЗрд╕ рддрдереНрдп рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реБрдЖ рдХрд┐ рдПрдХ рдмрд╛рд░ рдПрдХ-рдмрд┐рдЯ рд╕рдВрдХреЗрддреЛрдВ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдХреБрдЫ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреБрдЫ рдкреЛрд░реНрдЯ рдкрд░ рдХреБрдЫ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рдкреИрдХреЗрдЬ рдХреЛ рд╕реНрдХреНрд░реАрди рдкрд░ рдбрд┐рд╕рдмреИрд▓реЗрдВрд╕ рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдЙрд╕реА рд╕рдордп рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЬрдм рдХрд┐рд╕реА рдкрд░рд┐рдЪрд┐рдд рдбреИрд╢рдмреЛрд░реНрдб рдХреА рдирдХрд▓ рдХрд░реЗрдВред рдбрд┐рдЬрд┐рдЯрд▓ рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Qt "рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░" QLCDNumber рд╡рд░реНрдЧ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдкрд░рд┐рдЪрд┐рдд рд╕рд╛рдд-рдЦрдВрдб рд╕рдВрдХреЗрддрдХреЛрдВ рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХрд▓ рд▓реИрдВрдк рдореЗрдВ рдХреБрдЫ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред
рдЗрди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЭрдВрдбреЗ (рд╡реЗ рдЪреЗрдХ рдмреЙрдХреНрд╕ рд╣реИрдВ) рдФрд░ рд╕реНрд╡рд┐рдЪ (рд╡реЗ рд░реЗрдбрд┐рдпреЛ рдмрдЯрди рд╣реИрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреБрд░рд╛ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рдХрд╛рд░рдгреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ:
- рдпрд╣ рд╢рдмреНрджрд╛рд░реНрде рдореЗрдВ рдЧрд▓рдд рд╣реИред рдмрдЯрди - рд╡реЗ рдмрдЯрди рд╣реИрдВ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИрдВ, рди рдХрд┐ рдЙрд╕реЗ рдХреБрдЫ рднреА рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
- рдЗрд╕рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рджреВрд╕рд░рд╛ рд╣реИ: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдРрд╕реЗ рдмрдЯрди рдкрд░ рдкреНрд░рд╣рд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕реВрдЪрдирд╛ рдЕрджреНрдпрддрди рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рддреЗрдЬ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╕рдВрдХреЗрдд рдЭреВрда рд╣реЛрдЧрд╛, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рдЦрд░рд╛рдмреА рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдЧрд╛, рдЬреЛ рдХрд┐ рдЬреЛрд░ рд╕реЗ рдЯрдХрд░рд╛рдПрдЧрд╛ред
- рдпрджрд┐ рдЖрдк рджрдмрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдЯрди рдХреЛ рд▓реЙрдХ рдХрд░рддреЗ рд╣реИрдВ (рд╕реЗрдЯрдПрдиреЗрдмрд▓ (рдЭреВрдареА)), рддреЛ рдпрд╣ рдмрджрд╕реВрд░рдд рдЧреНрд░реЗ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рдбреЗрд▓реНрдлреА рдореЗрдВ, рд╕рдВрд╕реНрдХрд░рдг 6 рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ, рдХрд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдЭрдЧрдбрд╝рд╛ рд╣реБрдЖ рдерд╛: рдЖрдк рдкреИрдирд▓ рдкрд░ рдПрдХ рдзреНрд╡рдЬ рд▓рдЧрд╛ рд╕рдХрддреЗ рдереЗ рдФрд░ рдкреИрдирд▓ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рдереЗ, рдзреНрд╡рдЬ рдирд╣реАрдВ рдерд╛, рддрдм рдзреНрд╡рдЬ рди рддреЛ рдЧреНрд░реЗ рдерд╛ рдФрд░ рди рд╣реА рд╕рдХреНрд░рд┐рдп рдерд╛ред рдпрд╣ рдЪрд╛рд▓ рдпрд╣рд╛рдБ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИред
- рдмрдЯрди рдореЗрдВ рдЗрдирдкреБрдЯ рдлрд╝реЛрдХрд╕ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдпрджрд┐ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЗрдирдкреБрдЯ рддрддреНрд╡ рд╣реИрдВ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЯреИрдм рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдирдХреЗ рд╕рд╛рде рдЪрд▓рддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рддрддреНрд╡реЛрдВ рдХреЗ рд╕рд╛рде рдЪрд▓рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдФрд░ рдмрджрд╕реВрд░рдд рд╣реИред
- рдЕрдВрдд рдореЗрдВ, рдпреЗ рдмрдЯрди рдХреЗрд╡рд▓ рдЕрд╢рд╛рдВрддрд┐рдкреВрд░реНрдг рджрд┐рдЦрддреЗ рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рд╛рдд-рдЦрдВрдб рдХреЗ рдмрдЧрд▓ рдореЗрдВред
рдирд┐рд╖реНрдХрд░реНрд╖: рдЖрдкрдХреЛ рд╕реНрд╡рдпрдВ рдПрдХ рдкреНрд░рдХрд╛рд╢ рдмрд▓реНрдм рдЦреАрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдкрд╕рдВрдж рдХрд╛ рдЖрдЯрд╛
рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХреАред рдЙрд╕ рд╕рдордп рдореЗрдВ, рдЬрдм рдореИрдВрдиреЗ рдбреЗрд▓реНрдлреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛, рддреЛ рдЖрдк рдЧрдВрднреАрд░ рдХрдВрдкрдирд┐рдпреЛрдВ рдФрд░ рд╢реМрдХрд┐рдпрд╛ рдирд┐рд░реНрдорд╛рддрд╛рдУрдВ рджреЛрдиреЛрдВ рд╕реЗ, рдмрд╕ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рдорд╛рддреНрд░рд╛ рдореЗрдВ рдШрдЯрдХ рдкрд╛ рд╕рдХрддреЗ рдереЗред рдЗрд╕рд╕реЗ Qt рдХреЛ рдмрд╣реБрдд рдкрд░реЗрд╢рд╛рдиреА рд╣реЛрддреА рд╣реИред QWT рдореЗрдВ рдХреБрдЫ рддрддреНрд╡ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рд╢реМрдХрд┐рдпрд╛ рддреМрд░ рдкрд░ рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рджреЗрдЦрд╛ред рд╢рд╛рдпрдж, рдЕрдЧрд░ рдЖрдк рдЧрд┐рддреБрдм рдкрд░ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЦреБрджрд╛рдИ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХреБрдЫ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рд╢рд╛рдпрдж рдЦреБрдж рдХреЛ рддреЗрдЬреА рд╕реЗ рдХрд░реВрдВрдЧрд╛ред
рдкрд╣рд▓реА рдЪреАрдЬ рдЬреЛ рдШрд░ рдХреЗ рдЕрдВрджрд░ рд╕реЗ рд╣реА рд╕реБрдЭрд╛рдИ рдЧрдИ рдереА, рд╡рд╣ рдереА рджреЛ рдЗрдореЗрдЬ рдлрд╛рдЗрд▓реНрд╕ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рд▓рд╛рдЗрдЯ рдХреА рдЗрдореЗрдЬреЗрдЬ рдХреЛ рдСрди рдФрд░ рдСрдл рдХрд░рдирд╛ред рдЦрд░рд╛рдм:
- рдЕрдЪреНрдЫреА рддрд╕реНрд╡реАрд░реЗрдВ рдвреВрдВрдврдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ (рдпрд╛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдХрд▓рд╛рдХрд╛рд░ рдирд╣реАрдВ рд╣реВрдВ);
- рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рд╕рд╡рд╛рд▓ рд╣реИ: рдмрд╛рдВрдзрдирд╛ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЪрд┐рддреНрд░ рднреА, рдЕрдкрдиреЗ рдкреИрд░реЛрдВ рдХреЗ рдиреАрдЪреЗ рдЭреВрда рдмреЛрд▓рдирд╛;
- рдЙрдиреНрд╣реЗрдВ рдХрд╣реАрдВ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдлрд╛рдЗрд▓реЗрдВ рдмрд╣реБрдд рдЦрд░рд╛рдм рд╣реИрдВ: рдЧрд▓рддреА рд╕реЗ рдорд┐рдЯ рдЧрдИрдВ - рдФрд░ рдХреЛрдИ рдмрдЯрди рдирд╣реАрдВ рд╣реИред рд╕рдВрд╕рд╛рдзрди рдмреЗрд╣рддрд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рднреА рдорд╣рд╕реВрд╕ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдореБрдЭреЗ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ;
- рдХреЛрдИ рд╕реНрдХреЗрд▓реЗрдмрд┐рд▓рд┐рдЯреА рдирд╣реАрдВ;
- Customizability (рд░рдВрдЧ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП) рдХреЗрд╡рд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рд╣рд╛рд╕рд┐рд▓ рдХреА рд╣реИред рдпрд╣ рд╕рдВрд╕рд╛рдзрди рдЧрд╣рди рдФрд░ рдЕрдирдореНрдп рд╣реИред
рджреВрд╕рд░реА рдЪреАрдЬ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рдЖрддреА рд╣реИ, рд╡рд╣ рд╣реИ рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рдмрдЬрд╛рдп рд╡реЗрдХреНрдЯрд░ рдЪрд┐рддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, Qt SVG рд░реЗрдВрдбрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХреЗ рд╕рд╛рде рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдереЛрдбрд╝рд╛ рдЖрд╕рд╛рди рд╣реИ: рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рд╡реЗрдХреНрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдмрдХ рд╣реИрдВ, рдЖрдк рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рдЙрдкрдпреБрдХреНрдд рдХреБрдЫ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕рд╡рд╛рд▓ рднрдВрдбрд╛рд░рдг рдФрд░ рдЕрдиреБрдХреВрд▓рди рдХрд╛ рд░рд╣рддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рддрд┐рдкрд╛рджрди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдирд╣реАрдВ рд╣реИред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд▓реЗрдХрд┐рди рдЕрднреА рднреА ...
рдФрд░ рджреВрд╕рд░реЗ рд╕реЗ рддреАрд╕рд░рд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ: рдЖрдк рд╕реНрд╡-рдЖрд░реЗрдЦрдг рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡реЗрдХреНрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! рдкрд╛рда рд░реВрдк рдореЗрдВ рдПрдХ рд╡реЗрдХреНрдЯрд░ рдЫрд╡рд┐ рдлрд╝рд╛рдЗрд▓ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдореИрдВ рд╡реЗрдХреНрдЯрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рди рдХреЛрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, QPainter рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдЙрдкрдХрд░рдг рд╣реИрдВ: рдПрдХ рдХрд▓рдо, рдПрдХ рдмреНрд░рд╢, рдПрдХ рдврд╛рд▓ рдФрд░ рдбреНрд░рд╛рдЗрдВрдЧ рдЖрджрд┐рдо, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдмрдирд╛рд╡рдЯ рднреАред рд╣рд╛рдВ, рдЙрдкрдХрд░рдг рд╕рднреА рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИрдВ: рдХреЛрдИ рдорд╛рд╕реНрдХ, рд╕рдореНрдорд┐рд╢реНрд░рдг рдореЛрдб рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд┐рд▓реНрдХреБрд▓ рдлреЛрдЯреЛрд░рд┐рдЕрд▓рд┐рдЬрд╝реНрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдореИрдВрдиреЗ рдиреЗрдЯ рдкрд░ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХреАред рдЙрдиреНрд╣реЛрдВрдиреЗ рдкрд╣рд▓рд╛ рд╕рдмрдХ рд▓рд┐рдпрд╛ рдЬреЛ рд╕рд╛рдордиреЗ рдЖрдпрд╛: "рд╣рдо рдЗрдирдХреИрдкреНрд╕ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдПрдбрд┐рдЯрд░ рдореЗрдВ рдПрдХ рдмрдЯрди рдЦреАрдВрдЪрддреЗ рд╣реИрдВ" рд╕рд╛рдЗрдЯ рд╕реЗ "рдбреНрд░рд╛ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдЗрд╕ рдкрд╛рда рдХрд╛ рдмрдЯрди рдПрдХ рдмрдЯрди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкреНрд░рдХрд╛рд╢ рдмрд▓реНрдм рдХреА рддрд░рд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИ, рдЬреЛ рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реВрдЯ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдПрдХ рдорд╕реМрджрд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдБ: Inkscape рдХреЗ рдмрдЬрд╛рдп, Qt рдореЗрдВ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ред
рдкрдВрдЦ рдкрд░реАрдХреНрд╖рдг
рдореИрдВ рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рдЙрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╛рдо рдЪреБрдирд╛ рдЧрдпрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ (рдореИрдВ рдЖрд░рдЬреАрдмреА рдПрд▓рдИрдбреА рдХреА рддрд░рд╣ рдХреБрдЫ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ) рдФрд░ рдЙрд╕рдХреЗ рд▓рд┐рдП рд░рд╛рд╕реНрддрд╛ред рдореИрдВ рдмреЗрд╕ рдХреНрд▓рд╛рд╕ QWidget рдФрд░ RgbLed рдирд╛рдо рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реВрдВ, рдореИрдВ рдлреЙрд░реНрдо рдлрд╛рдЗрд▓ рдмрдирд╛рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВред рд▓реЙрдиреНрдЪ рдХреЗ рдмрд╛рдж рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдПрдХ рдЦрд╛рд▓реА рдЦрд┐рдбрд╝рдХреА рдмрдирд╛рддреА рд╣реИ, рдпрд╣ рдЕрднреА рднреА рдирд┐рд░реНрдмрд╛рдз рд╣реИред
рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░реА
рдПрдХ рдХреЛрд░рд╛ рд╣реИред рдЕрдм рдЖрдкрдХреЛ рдХрдХреНрд╖рд╛ рдХреЗ рдирд┐рдЬреА рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рддрд╕реНрд╡реАрд░ рдХреА рдЬреНрдпрд╛рдорд┐рддрд┐ рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░реЗрдЧрд╛ред рд╡реЗрдХреНрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХрд╛ рдПрдХ рдЕрдирд┐рд╡рд╛рд░реНрдп рд▓рд╛рдн рдЗрд╕рдХреА рдорд╛рдкрдиреАрдпрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдиреНрдпреВрдирддрдо рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдирд┐рд░рдВрддрд░рддрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдФрд░ рд╡реЗ рдХреЗрд╡рд▓ рдЕрдиреБрдкрд╛рдд рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЖрдХрд╛рд░ рдкрд░рд┐рд╡рд░реНрддрди () рдШрдЯрдирд╛ рдореЗрдВ рдкреБрдирд░реНрдЧрдгрдирд╛ рдХреА рдЬрд╛рдПрдЧреА, рдЬрд┐рд╕реЗ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдбреНрд░рд╛рдЗрдВрдЧ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рдЖрдпрд╛рдо рдкрд┐рдХреНрд╕реЗрд▓ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реЛрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдЖрдк рдЬрд╛рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдкрд╣рд▓реЗ рд╕реЗ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ рдФрд░ рдХреИрд╕реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░реВрдВрдЧрд╛ред
рдПрдХ рдЦреАрдВрдЪреА рдЧрдИ рддрд╕реНрд╡реАрд░ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрддреНрд╡ рд╣реЛрддреЗ рд╣реИрдВ:
- рдмрд╛рд╣рд░реА рд░рд┐рдВрдЧ (рдЙрддреНрдХреАрд░реНрдг, рдЙрддреНрддрд▓ рд░рд┐рдо рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛)
- рдЖрдВрддрд░рд┐рдХ рд╡рд▓рдп (рдЕрдВрджрд░ рдХреА рдУрд░ рдЭреБрдХрд╛ рд╣реБрдЖ)
- рдПрд▓рдИрдбреА рд▓реИрдВрдк рдЖрд╡рд╛рд╕, "рдЧреНрд▓рд╛рд╕"
- рдХрд╛рдВрдЪ рдХреЗ рдХрд┐рдирд╛рд░реЗ рдкрд░ рдЫрд╛рдпрд╛
- рд╢реАрд░реНрд╖ рдкрд░ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рд╛
- рдиреАрдЪреЗ рднрдбрд╝рдХрдирд╛
рдХрдВрд╕реЗрдВрдЯреНрд░рд┐рдХ рд╕рд░реНрдХрд▓, рдпрд╛рдиреА рдЪрдХрд╛рдЪреМрдВрдз рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рдм рдХреБрдЫ рдХреЗрдВрджреНрд░ рдФрд░ рддреНрд░рд┐рдЬреНрдпрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЪрдХрд╛рдЪреМрдВрдз рдХреЗрдВрджреНрд░, рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдЪрдХрд╛рдЪреМрдВрдз рдХреЗ рдПрдХреНрд╕ рдХреЗрдВрджреНрд░реЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдкреВрд░реА рддрд╕реНрд╡реАрд░ рдХреЗ рдПрдХреНрд╕ рдХреЗрдВрджреНрд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддреА рд╣реИред
рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЗ рддрддреНрд╡реЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рдЕрдзрд┐рдХ рд╣реИ - рдЪреМрдбрд╝рд╛рдИ рдпрд╛ рдКрдВрдЪрд╛рдИ, рдХреНрдпреЛрдВрдХрд┐ рдмрд▓реНрдм рдЧреЛрд▓ рд╣реИ рдФрд░ рджреЛ рдЖрдпрд╛рдореЛрдВ рдХреЗ рдЫреЛрдЯреЗ рдХреЗ рдмрд░рд╛рдмрд░ рдПрдХ рд╡рд░реНрдЧ рдХреЗ рд╕рд╛рде рдлрд┐рдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рд╕рдВрдмрдВрдзрд┐рдд рдирд┐рдЬреА рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рд╣реЗрдбрд░ рдлрд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВред
рдХреЛрдбprivate: int height; int width; int minDim; int half; int centerX; int centerY; QRect drawingRect; int outerBorderWidth; int innerBorderWidth; int outerBorderRadius; int innerBorderRadius; int topReflexY; int bottomReflexY; int topReflexWidth; int topReflexHeight; int bottomReflexWidth; int bottomReflexHeight;
рддрдм рдореИрдВ рд╕рдВрд░рдХреНрд╖рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рд╡рд┐рдЬреЗрдЯ рдХреЗ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдкрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреЛрдб protected: void resizeEvent(QResizeEvent *event); void RgbLed::resizeEvent(QResizeEvent *event) { QWidget::resizeEvent(event); this->height = this->size().height(); this->width = this->size().width(); this->minDim = (height > width) ? width : height; this->half = minDim / 2; this->centerX = width / 2; this->centerY = height / 2; this->outerBorderWidth = minDim / 10; this->innerBorderWidth = minDim / 14; this->outerBorderRadius = half - outerBorderWidth; this->innerBorderRadius = half - (outerBorderWidth + innerBorderWidth); this->topReflexY = centerY - (half - outerBorderWidth - innerBorderWidth) / 2; this->bottomReflexY = centerY + (half - outerBorderWidth - innerBorderWidth) / 2; this->topReflexHeight = half / 5; this->topReflexWidth = half / 3; this->bottomReflexHeight = half / 5; this->bottomReflexWidth = half / 3; drawingRect.setTop((height - minDim) / 2); drawingRect.setLeft((width - minDim) / 2); drawingRect.setHeight(minDim); drawingRect.setWidth(minDim); }
рдпрд╣рд╛рдВ, рдЬрд┐рд╕ рд╡рд░реНрдЧ рдореЗрдВ рдкреНрд░рдХрд╛рд╢ рдмрд▓реНрдм рдЦреБрджрд╛ рд╣реБрдЖ рд╣реИ, рдЙрд╕рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдЗрд╕ рд╡рд░реНрдЧ рдХрд╛ рдХреЗрдВрджреНрд░, рдЕрдзрд┐рдХрддрдо рд╕рдВрднрд╡ рдХреНрд╖реЗрддреНрд░ рдкрд░ рд╕реНрдерд┐рдд рд░рд┐рдо рдХреА рддреНрд░рд┐рдЬреНрдпрд╛, рд░рд┐рдо рдХреА рдЪреМрдбрд╝рд╛рдИ, рдмрд╛рд╣рд░реА рднрд╛рдЧ рдЬрд┐рд╕рдХрд╛ рд╡реНрдпрд╛рд╕ рдХрд╛ 1/10 рдФрд░ рдЖрдВрддрд░рд┐рдХ 1/14 рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдлрд┐рд░ рдЪрдХрд╛рдЪреМрдВрдз рдХреА рд╕реНрдерд┐рддрд┐, рдЬреЛ рдКрдкрд░реА рдФрд░ рдирд┐рдЪрд▓реЗ рд░реЗрдбреА рдХреЗ рдмреАрдЪ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ, рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рдЖрдВрдЦреЛрдВ рдХреЗ рд▓рд┐рдП рдЪреБрдиреА рдЬрд╛рддреА рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдВрд░рдХреНрд╖рд┐рдд рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рдореИрдВ рддреБрд░рдВрдд рдЗрд╕реНрддреЗрдорд╛рд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд░рдВрдЧреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдЬреЛрдбрд╝ рджреВрдВрдЧрд╛ред
рдХреЛрдб QColor ledColor; QColor lightColor; QColor shadowColor; QColor ringShadowDarkColor; QColor ringShadowMedColor; QColor ringShadowLightColor; QColor topReflexUpColor; QColor topReflexDownColor; QColor bottomReflexCenterColor; QColor bottomReflexSideColor;
рдирд╛рдореЛрдВ рд╕реЗ рдпрд╣ рд▓рдЧрднрдЧ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпреЗ рдкреНрд░рдХрд╛рд╢ рдмрд▓реНрдм рдХреЗ рд░рдВрдЧ, рдЫрд╛рдпрд╛ рдХрд╛ рд╣рд▓реНрдХрд╛ рднрд╛рдЧ, рдЫрд╛рдпрд╛ рдХрд╛ рдХрд╛рд▓рд╛ рднрд╛рдЧ, рдкреНрд░рдХрд╛рд╢ рдмрд▓реНрдм рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдХрд╛рдВрд╕реБрд▓рд░ рдЫрд╛рдпрд╛ рдХреЗ рддреАрди рд░рдВрдЧ рдФрд░ рдЪрдХрд╛рдЪреМрдВрдз рдХреЗ рд░рдВрдЧ рд╣реИрдВред
рд░рдВрдЧ рдЖрд░рдВрднреАрдХреГрдд рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдбрд┐рдЬрд╝рд╛рдЗрдирд░ рдХреА рд╡рд░реНрдХрдкреАрд╕ рдХреЛ рдкреВрд░рдХ рдХрд░реВрдБрдЧрд╛ред
рдХреЛрдб RgbLed::RgbLed(QWidget *parent) : QWidget(parent), ledColor(Qt::green), lightColor(QColor(0xE0, 0xE0, 0xE0)), shadowColor(QColor(0x70, 0x70, 0x70)), ringShadowDarkColor(QColor(0x50, 0x50, 0x50, 0xFF)), ringShadowMedColor(QColor(0x50, 0x50, 0x50, 0x20)), ringShadowLightColor(QColor(0xEE, 0xEE, 0xEE, 0x00)), topReflexUpColor(QColor(0xFF, 0xFF, 0xFF, 0xA0)), topReflexDownColor(QColor(0xFF, 0xFF, 0xFF, 0x00)), bottomReflexCenterColor(QColor(0xFF, 0xFF, 0xFF, 0x00)), bottomReflexSideColor(QColor(0xFF, 0xFF, 0xFF, 0x70)) { }
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордд рднреВрд▓рдирд╛ рдЙрди рд╡рд░реНрдЧреЛрдВ рдХреЗ рдирд┐рд╖реНрдХрд░реНрд╖ рдЬреЛ рдбреНрд░рд╛рдЗрдВрдЧ рдХрд░рддреЗ рд╕рдордп рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдВрдЧреЗред
рдХреЛрдб #include <QPainter> #include <QPen> #include <QBrush> #include <QColor> #include <QGradient>
рдпрд╣ рдХреЛрдб рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рдЬреЗрдЯ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИред рдпрд╣ рдбреНрд░рд╛рдЗрдВрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред
рдбреНрд░рд╛рдЗрдВрдЧ
рдореИрдВ рдПрдХ рдмрдВрдж рдлрд╝рдВрдХреНрд╢рди рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реВрдВ
void drawLed(const QColor &color);
рдФрд░ рд╕рдВрд░рдХреНрд╖рд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ
void paintEvent(QPaintEvent *event);
Redraw рдШрдЯрдирд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреНрд░рд╛рдЗрдВрдЧ рдХрд╛ рдХрд╛рд░рдг рдмрдиреЗрдЧреА, рдЬрд┐рд╕рдореЗрдВ "рдЧреНрд▓рд╛рд╕" рдХрд╛ рд░рдВрдЧ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдХреЛрдб void RgbLed::paintEvent(QPaintEvent *event) { QWidget::paintEvent(event); this->drawLed(ledColor); }
рдЕрдм рддрдХред рдФрд░ рд╣рдо рдзреАрд░реЗ-рдзреАрд░реЗ рдбреНрд░рд╛рдЗрдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рднрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдХреЛрдб void RgbLed::drawLed(const QColor &color) { QPainter p(this); QPen pen; pen.setStyle(Qt::NoPen); p.setPen(pen); }
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдХрд▓рд╛рдХрд╛рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдбреНрд░рд╛рдЗрдВрдЧ рдореЗрдВ рд▓рдЧрд╛ рд╣реЛрдЧрд╛ред рдлрд┐рд░ рдПрдХ рдкреЗрдВрд╕рд┐рд▓ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рддрд╛рдХрд┐ рдХреЛрдИ рдкреЗрдВрд╕рд┐рд▓ рди рд╣реЛ: рдЗрд╕ рдЫрд╡рд┐ рдореЗрдВ, рд░реВрдкрд░реЗрдЦрд╛ рд╕реНрдЯреНрд░реЛрдХ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИред
рдлрд┐рд░ рдкрд╣рд▓рд╛ рд╕рд░реНрдХрд▓ рд╡реЗрдХреНрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкрд░ рд╕рдмрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдиреБрдорд╛рдирд┐рдд рд░реВрдк рд╕реЗ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдПрдХ рдмрдбрд╝рд╛ рд╡реГрддреНрдд, рдПрдХ рд░реЗрдбрд┐рдпрд▓ рдврд╛рд▓ рд╕реЗ рднрд░рд╛ рд╣реБрдЖред рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдореЗрдВ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рд╣рд▓реНрдХрд╛ рд▓рдВрдЧрд░ рдмрд┐рдВрджреБ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдХрд┐рдирд╛рд░реЗ рдкрд░ рдирд╣реАрдВ рд╣реИ, рдФрд░ рддрд▓ рдкрд░ рдПрдХ рдЕрдВрдзреЗрд░рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдХрд┐рдирд╛рд░реЗ рдкрд░ рдирд╣реАрдВ рд╣реИред рдПрдХ рдмреНрд░рд╢ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕ рдмреНрд░рд╢ рдХреЗ рд╕рд╛рде рдЪрд┐рддреНрд░рдХрд╛рд░ рдПрдХ рд╕рд░реНрдХрд▓ (рдпрд╛рдиреА рдПрдХ рд╡рд░реНрдЧ рдореЗрдВ рдЕрдВрдХрд┐рдд рдПрдХ рджреАрд░реНрдШрд╡реГрддреНрдд) рдкреЗрдВрдЯ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдРрд╕реЗ рдХреЛрдб рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ
рдХреЛрдб QRadialGradient outerRingGradient(QPoint(centerX, centerY - outerBorderRadius - (outerBorderWidth / 2)), minDim - (outerBorderWidth / 2))
рдкрд░реНрдпрд╛рд╡рд░рдг рдбреНрд░реЙ рдХрд┐рдП рдЧрдП рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░рдВрдЧ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд░ рдЬреЛрд░ рджреЗрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрд╕реЗ рд╕рд╣рди рдХрд░рдиреЗ рджреЛ, рдЙрд╕реЗ рдЕрднреА рдЬрд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд▓реНрдж рд╣реА рдЙрд╕реЗ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд▓реЙрдиреНрдЪ рдХреА рдЧрдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреА рд╣реИ:
рдХреЛрдб рдХрд╛ рдПрдХ рдФрд░ рдмреИрдЪ рдЬреЛрдбрд╝реЗрдВред
рдХреЛрдб QRadialGradient innerRingGradient(QPoint(centerX, centerY + innerBorderRadius + (innerBorderWidth / 2)), minDim - (innerBorderWidth / 2))
рд▓рдЧрднрдЧ рдПрдХ рд╣реА рд╕рд░реНрдХрд▓, рдХреЗрд╡рд▓ рдЖрдХрд╛рд░ рдореЗрдВ рдЫреЛрдЯрд╛ рдФрд░ рдЙрд▓реНрдЯрд╛ред рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:
рддреЛ рдЖрдЦрд┐рд░рдХрд╛рд░ рдЖрдкрдХреЛ рдХрд╛рдВрдЪ рдХреЗ рд░рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
рдХреЛрдб QColor dark(color.darker(120)); QRadialGradient glassGradient(QPoint(centerX, centerY), innerBorderRadius); glassGradient.setColorAt(0, color); glassGradient.setColorAt(1, dark); QBrush glassBrush(glassGradient); p.setBrush(glassBrush); p.drawEllipse(QPoint(centerX, centerY), innerBorderRadius, innerBorderRadius);
рдпрд╣рд╛рдВ, рд╕рдВрдЪрд░рд┐рдд рд░рдВрдЧ рд╕реЗ рдЧрд╣рд░реЗ рд░рдВрдЧ рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдврд╛рд▓ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рд░рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЧрд╣рд░рд╛ рд╣реИред рдЖрдБрдЦ рджреНрд╡рд╛рд░рд╛ рдЪрдпрдирд┐рдд рдЧреБрдгрд╛рдВрдХ 120ред рдпрд╣рд╛рдБ рдкрд░рд┐рдгрд╛рдо рд╣реИ:
рдХрд╛рдВрдЪ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдПрдХ рдХреБрдВрдбрд▓рд╛рдХрд╛рд░ рдЫрд╛рдпрд╛ рдЬреЛрдбрд╝реЗрдВред рдпрд╣ рд╡реЗрдХреНрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдкрд░ рдкрд╛рда рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рд╡реЙрд▓реНрдпреВрдо рдФрд░ рдпрдерд╛рд░реНрдерд╡рд╛рдж рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП:
рдХреЛрдб QRadialGradient shadowGradient(QPoint(centerX, centerY), innerBorderRadius); shadowGradient.setColorAt(0, ringShadowLightColor); shadowGradient.setColorAt(0.85, ringShadowMedColor); shadowGradient.setColorAt(1, ringShadowDarkColor); QBrush shadowBrush(shadowGradient); p.setBrush(shadowBrush); p.drawEllipse(QPoint(centerX, centerY), innerBorderRadius, innerBorderRadius);
рдПрдХ рддреАрди-рдЪрд░рдг рдврд╛рд▓ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЫрд╛рдпрд╛ рдХрд┐рдирд╛рд░реЗ рддрдХ рдореЛрдЯреА рд╣реЛрддреА рд╣реИ рдФрд░ рдХреЗрдВрджреНрд░ рдХреА рдУрд░ рдореБрдбрд╝ рдЬрд╛рддреА рд╣реИред рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдирд┐рдХрд▓рд╛:
рд╣рд╛рдЗрд▓рд╛рдЗрдЯреНрд╕ рдЬреЛрдбрд╝реЗрдВ, рджреЛрдиреЛрдВ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВред рдКрдкрд░реА рд╣рд╛рдЗрд▓рд╛рдЗрдЯ, рдирд┐рдЪрд▓реЗ (рдФрд░ рд╕рднреА рдЕрдиреНрдп рддрддреНрд╡реЛрдВ) рдХреЗ рд╡рд┐рдкрд░реАрдд, рдПрдХ рд░реИрдЦрд┐рдХ рдврд╛рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореЗрд░рд╛ рдХрд▓рд╛рдХрд╛рд░ рдРрд╕рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдкрд╛рда рдХреЗ рд▓реЗрдЦрдХ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдмрд╛рдд рд░рдЦрддрд╛ рд╣реВрдВред рд╢рд╛рдпрдж рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдЪреНрдЪрд╛рдИ рд╣реИ, рдореИрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЧреНрд░реЗрдбрд┐рдПрдВрдЯ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред
рдХреЛрдб QLinearGradient topTeflexGradient(QPoint(centerX, (innerBorderWidth + outerBorderWidth)), QPoint(centerX, centerY))
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреЗрдбреАрдкреАрд╡реА рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣ рд╕рдм рдПрдХ рддреИрдпрд╛рд░ рдкреНрд░рдХрд╛рд╢ рдмрд▓реНрдм рд╣реИред
рдЧреНрд▓рд╛рд╕ рдХреА рдЪрдХрд╛рдЪреМрдВрдз рдФрд░ рдЙрднрд╛рд░ рдХреА рджреГрд╢реНрдпрддрд╛ рд░рдВрдЧ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддреА рд╣реИ, рдпрд╛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рдХрд┐рддрдирд╛ рдЕрдВрдзреЗрд░рд╛ рд╣реИред рдпрд╣ рдЪрдХрд╛рдЪреМрдВрдз рдХреА рдЪрдордХ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдпреЛрдЬрди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдВрдзреЗрд░реЗ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдзрд┐рдХ рдЧрд╣рд░рд╛ рдХрд╛рд░реНрдп рдореЗрдВ рдЧреБрдгрд╛рдВрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреВрд░реНрдгрддрд╛рд╡рд╛рдж рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред
рдиреАрдЪреЗ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред
рд╢рд░рд╛рд░рдд
рдордЬрд╝реЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдлреВрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рдВрд░рдХреНрд╖рд┐рдд рдорд╛рдЙрд╕ рдХреНрд▓рд┐рдХ рдЗрд╡реЗрдВрдЯ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛
void mousePressEvent(QMouseEvent *event);
рдЗрд╕ рддрд░рд╣ рд╕реЗ:
рдХреЛрдб void RgbLed::mousePressEvent(QMouseEvent *event) { static int count = 0; if (event->button() == Qt::LeftButton) { switch (count) { case 0: ledColor = Qt::red; count++; break; case 1: ledColor = Qt::green; count++; break; case 2: ledColor = Qt::blue; count++; break; case 3: ledColor = Qt::gray; count++; break; default: ledColor = QColor(220, 30, 200); count = 0; break; } this->repaint(); } QWidget::mousePressEvent(event); }
рд╣реЗрдбрд░ рдореЗрдВ рдорд╛рдЙрд╕ рдИрд╡реЗрдВрдЯ рдЬреЛрдбрд╝рдирд╛ рди рднреВрд▓реЗрдВ:
#include <QMouseEvent>
рдЕрдм рдШрдЯрдХ рдкрд░ рдПрдХ рдорд╛рдЙрд╕ рдХреНрд▓рд┐рдХ рд╕реЗ рдкреНрд░рдХрд╛рд╢ рдмрд▓реНрдм рдХрд╛ рд░рдВрдЧ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛: рджреАрдкрдХ рд╕реЗ рд▓рд╛рд▓, рд╣рд░рд╛, рдиреАрд▓рд╛, рдЧреНрд░реЗ рдФрд░ рдХреБрдЫ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкреНрд░рдХрд╛рд╢ред
рдЙрдкрд╕рдВрд╣рд╛рд░
рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕рдм рд╣реИред рдФрд░ рд╡рд┐рдЬреЗрдЯ рдХреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рдмреВрд▓рд┐рдпрди рдлрд╝реАрд▓реНрдб "рдЙрдкрдпреЛрдЧ рд░рд╛рдЬреНрдп" рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛, рдПрдХ рдЕрдиреНрдп рдмреВрд▓рд┐рдпрди рдлрд╝реАрд▓реНрдб рдЬреЛ рд░рд╛рдЬреНрдп рдХреЛ "рдСрди" рдпрд╛ "рдСрдл" рдФрд░ рдЗрди рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░рдВрдЧ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЦреБрд▓реЗ рдЧреЗрдЯрд░реНрд╕ рдФрд░ рдЗрди рд╕рднреА рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рд░рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ (рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ) рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рд░рдВрдЧ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рд░реЛрд╣ред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЖрдк рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрд┐рд╕реА рднреА рд░рдВрдЧ рдореЗрдВ рдмрд▓реНрдм рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рдЪрд╛рд▓реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдШрдЯрдирд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрд▓реНрдм рдХреЛ рдЪрд╛рд▓реВ рдпрд╛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд░рд╛рдЬреНрдп рд╕реЗрдЯрд░ рдХреЛ рдПрдХ рдЦреБрд▓рд╛ рд╕реНрд▓реЙрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╕рдВрдХреЗрдд рдЬреЛ рдирд┐рдЧрд░рд╛рдиреА рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП рд╕рд╛рде рдпрд╣ рд╣реЛред
MousePressEvent рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╡рд┐рдЬреЗрдЯ рдХреЛ рди рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрдХреЗрддрдХ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рдмрдЯрди рднреА рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рджрдмрд╛рдпрд╛, рдЬрд╛рд░реА, рдореБрдбрд╝рд╛ рд╣реБрдЖ, рдореБрдбрд╝, рд░рдВрдЧреАрди рдФрд░ рдЬреЛ рдХреБрдЫ рднреА рдЖрдк рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ, рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдФрд░ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдм рдореМрд▓рд┐рдХ рдирд╣реАрдВ рд╣реИред рд▓рдХреНрд╖реНрдп рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рдерд╛ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╡рд┐рдЬреЗрдЯреНрд╕ рдмрдирд╛рддреЗ рд╕рдордп рд░реЛрд▓ рдореЙрдбрд▓ рдХрд╣рд╛рдВ рд╕реЗ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреИрд╕реЗ рдЗрд╕ рдбреНрд░рд╛рдЗрдВрдЧ рдХреЛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдпрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд░реЗрдЦрд╛рдкреБрдВрдЬ рдпрд╛ рд╡реЗрдХреНрдЯрд░ рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред