ΠΠΎ ΡΠΈΡ ΠΏΠΎΡ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΠΏΠ΅ΡΠ°, ΠΊΠΈΡΡΠΈ ΠΈ ΡΡΠΈΡΡΠ° ΡΠΈΡΠΎΠ²Π°Π»ΡΡΠΈΠΊΠ°. QPainter ΠΈΠΌΠ΅Π΅Ρ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, Π²Π»ΠΈΡΡΡΠΈΠ΅ Π½Π° ΡΠΏΠΎΡΠΎΠ± ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠ³ΡΡ ΠΈ ΡΠ΅ΠΊΡΡΠ°:
β’ ΠΠΈΡΡΡ ΡΠΎΠ½Π° (background brush) ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΎΠ½Π° Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΈΠ³ΡΡ (ΡΠΎ Π΅ΡΡΡ ΠΏΠΎΠ΄ ΡΠ°Π±Π»ΠΎΠ½ΠΎΠΌ ΠΊΠΈΡΡΠΈ), ΡΠ΅ΠΊΡΡΠ° ΠΈΠ»ΠΈ ΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΊΠ°ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅ΠΆΠΈΠΌΠ° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΎΠ½Π° Π·Π°Π΄Π°Π½ Qt::OpaqueMode (Π½Π΅ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ) (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΠΆΠΈΠΌ Qt::TransparentMode β ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΡΠΉ).
β’ ΠΡΡ ΠΎΠ΄Π½Π°Ρ ΡΠΎΡΠΊΠ° ΠΊΠΈΡΡΠΈ (brush origin) Π·Π°Π΄Π°Π΅Ρ ΡΠΎΡΠΊΡ Π½Π°ΡΠ°Π»Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ°Π±Π»ΠΎΠ½Π° ΠΊΠΈΡΡΠΈ, Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΡΠΊΠ° Π²Π΅ΡΡ Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡΠ³Π»Π° Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°.
β’ ΠΡΠ°Π½ΠΈΡΡ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ (clip region) ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΡ ΠΎΠ΄ΡΡ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ ΡΡΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ, ΠΈΠ³Π½ΠΎΡΠΈΡΡΡΡΡΡ.
β’ ΠΠ±Π»Π°ΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΎΠΊΠ½ΠΎ ΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΡΠΈΡΠ° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ (viewport, window ΠΈ world matfix) ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠΏΠΎΡΠΎΠ± ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ QPainter Π² ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ. Π‘ΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅.
β’ Π Π΅ΠΆΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠΈ (composition mode) ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΏΠΎΡΠΎΠ± Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Π½ΠΎΠ²ΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌΡΡ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ Ρ ΠΏΠΈΠΊΡΠ΅Π»ΡΠΌΠΈ, ΡΠΆΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΠΆΠΈΠΌ Β«source overΒ», ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ Π½ΠΎΠ²ΡΠ΅ ΠΏΠΈΠΊΡΠ΅Π»ΠΈ ΡΠΈΡΡΡΡΡΡ ΠΏΠΎΠ²Π΅ΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ . ΠΡΠΎΡ ΡΠ΅ΠΆΠΈΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΌΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ, ΠΈ ΠΎΠ½ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΠΎΠ·ΠΆΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅.
Π Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π² ΡΡΠ΅ΠΊΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠΈΡΠΎΠ²Π°Π»ΡΡΠΈΠΊΠ°, Π²ΡΠ·ΡΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ save(), ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ ΠΏΠΎΠ·ΠΆΠ΅, Π²ΡΠ·ΡΠ²Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ restore(). ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, Π΅ΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΈΡΠΎΠ²Π°Π»ΡΡΠΈΠΊΠ° ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΈΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π² ΠΏΡΠ΅ΠΆΠ½ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΌΡ ΡΡΠΎ ΡΠ²ΠΈΠ΄ΠΈΠΌ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅.
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΠΎΠ²Π°Π»ΡΡΠΈΠΊΠ°
Π ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠΈΡΠΎΠ²Π°Π»ΡΡΠΈΠΊΠ° QPainter ΡΠΎΡΠΊΠ° (0, 0) Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅ΡΡ Π½Π΅ΠΌ ΡΠ³Π»Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ; Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ x ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ Π²ΠΏΡΠ°Π²ΠΎ, Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ Π²Π½ΠΈΠ·. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΈΠΊΡΠ΅Π»Ρ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΎΠ±Π»Π°ΡΡΡ 1 Γ 1 Π² ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ ΠΎΠ± ΠΎΠ΄Π½ΠΎΠΉ Π²Π°ΠΆΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ: ΡΠ΅Π½ΡΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΠΈΠΌΠ΅Π΅Ρ Β«ΠΏΠΎΠ»ΡΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΠ΅Β» ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΈΠΊΡΠ΅Π»Ρ Π² Π²Π΅ΡΡ Π½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡΠ³Π»Ρ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΎΠ±Π»Π°ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΡΠΊΠ°ΠΌΠΈ (0, 0) ΠΈ (1, 1), Π° Π΅Π³ΠΎ ΡΠ΅Π½ΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠΎΡΠΊΠ΅ (0.5, 0.5). ΠΡΠ»ΠΈ ΠΌΡ ΠΏΡΠΎΡΠΈΠΌ QPainter Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠΎΡΠΊΠ΅ (100, 100), Π΅Π³ΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π±ΡΠ΄ΡΡ ΡΠΌΠ΅ΡΠ΅Π½Ρ Π½Π° Π²Π΅Π»ΠΈΡΠΈΠ½Ρ +0.5 ΠΏΠΎ ΠΎΠ±ΠΎΠΈΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΠΌ, ΠΈ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π½Π°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΈΠΊΡΠ΅Π»Ρ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ΅Π½ΡΡ Π² ΡΠΎΡΠΊΠ΅ (100.5, 100.5).
ΠΠ° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄ ΡΡΠ° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π»ΠΈΡΡ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½Π° ΠΈΠΌΠ΅Π΅Ρ Π²Π°ΠΆΠ½ΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΡΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ +0.5 Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΠ³Π»Π°ΠΆΠΈΠ²Π°Π½ΠΈΡ Π»ΠΈΠ½ΠΈΠΉ (ΡΠ΅ΠΆΠΈΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ); Π΅ΡΠ»ΠΈ ΡΠ΅ΠΆΠΈΠΌ ΡΠ³Π»Π°ΠΆΠΈΠ²Π°Π½ΠΈΡ Π»ΠΈΠ½ΠΈΠΉ Π²ΠΊΠ»ΡΡΠ΅Π½ ΠΈ ΠΌΡ ΠΏΡΡΠ°Π΅ΠΌΡΡ Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ° Π² ΡΠΎΡΠΊΠ΅ (100, 100), QPainter ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ²Π΅Π΄Π΅Ρ Π½Π° ΡΠΊΡΠ°Π½ ΡΠ΅ΡΡΡΠ΅ ΡΠ²Π΅ΡΠ»ΠΎ-ΡΠ΅ΡΡΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ Π² ΡΠΎΡΠΊΠ°Ρ (99.5, 99.5), (99.5, 100.5), (100.5, 99.5) ΠΈ (100.5, 100.5), ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°Π»ΠΎΡΡ Π²ΠΏΠ΅ΡΠ°ΡΠ»Π΅Π½ΠΈΠ΅ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΡΠΎΡΠ½ΠΎ Π² ΡΠΎΡΠΊΠ΅ ΡΠΎΠΏΡΠΈΠΊΠΎΡΠ½ΠΎΠ²Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΡΠΈΡ ΡΠ΅ΡΡΡΠ΅Ρ ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ. ΠΡΠ»ΠΈ ΡΡΠΎΡ ΡΡΡΠ΅ΠΊΡ Π½Π΅ΠΆΠ΅Π»Π°ΡΠ΅Π»Π΅Π½, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ, ΡΠΊΠ°Π·ΡΠ²Π°Ρ ΠΏΠΎΠ»ΡΠΏΠΈΠΊΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ (100.5, 100.5).
ΠΡΠΈ Π½Π°ΡΠ΅ΡΡΠ°Π½ΠΈΠΈ ΡΠ°ΠΊΠΈΡ ΡΠΈΠ³ΡΡ, ΠΊΠ°ΠΊ Π»ΠΈΠ½ΠΈΠΈ, ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΈ ΠΈ ΡΠ»Π»ΠΈΠΏΡΡ, Π΄Π΅ΠΉΡΡΠ²ΡΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°. ΠΠ° ΡΠΈΡ 8.7 ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠ·ΠΎΠ²Π° drawRect(2, 2, 6, 5) Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΈΡΠΈΠ½Ρ ΠΏΠ΅ΡΠ°, ΠΊΠΎΠ³Π΄Π° ΡΠ³Π»Π°ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ Π»ΠΈΠ½ΠΈΠΉ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΎ. Π ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ, Π²Π°ΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ 6 Γ 5, Π²ΡΡΠ΅ΡΡΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΏΠ΅ΡΠΎΠΌ Ρ ΡΠΈΡΠΈΠ½ΠΎΠΉ 1, ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΎΠ±Π»Π°ΡΡΡ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 7 Γ 6. ΠΡΠΎ Π½Π΅ Π΄Π΅Π»Π°Π»ΠΎΡΡ ΠΏΡΠ΅ΠΆΠ½ΠΈΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΌΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π² ΡΠ°Π½Π½ΠΈΡ Π²Π΅ΡΡΠΈΡΡ Qt, Π½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π΅Π½ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΠΉ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΠΉ ΠΎΡ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΠ΅ΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ Π²Π΅ΠΊΡΠΎΡΠ½ΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊΠΈ.
Π ΠΈΡ. 8.7. ΠΡΡΠ΅ΡΡΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° 6 Γ 5 ΠΏΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ ΡΠ³Π»Π°ΠΆΠΈΠ²Π°Π½ΠΈΡ Π»ΠΈΠ½ΠΈΠΉ.
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ Π΅Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠΈΡΠΎΠ²Π°Π»ΡΡΠΈΠΊΠΎΠΌ QPainter ΠΎΠ±Π»Π°ΡΡΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΎΠΊΠ½Π° ΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ. (Π Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΡΠ΅ΡΠΌΠΈΠ½ Β«ΠΎΠΊΠ½ΠΎΒ» Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΎΠΊΠ½Π° Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ, Π° ΡΠ΅ΡΠΌΠΈΠ½ Β«ΠΎΠ±Π»Π°ΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΒ» Π½ΠΈΠΊΠ°ΠΊ Π½e ΡΠ²ΡΠ·Π°Π½ Ρ ΠΎΠ±Π»Π°ΡΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ QScrollArea.)
Π’Π΅ΡΠΌΠΈΠ½Ρ Β«ΠΎΠ±Π»Π°ΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΒ» ΠΈ Β«ΠΎΠΊΠ½ΠΎΒ» ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ²ΡΠ·Π°Π½Ρ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ. ΠΠ±Π»Π°ΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠΌ, Π·Π°Π΄Π°Π½Π½ΡΠΌ Π² ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°Ρ . ΠΠΊΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ, Π½ΠΎ Π² Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°Ρ . ΠΡΠΈ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΡ Π·Π°Π΄Π°Π΅ΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠΎΡΠ΅ΠΊ Π² Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ, ΠΈ ΡΡΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ Π°Π»Π³Π΅Π±ΡΠ°ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΡΡΡ Π² ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ΅ΠΊΡΡΠΈΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ ΡΠ²ΡΠ·ΠΈ Β«ΠΎΠΊΠ½ΠΎβΠΎΠ±Π»Π°ΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΒ».
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΎΠ±Π»Π°ΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΎΠΊΠ½ΠΎ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π½Π° ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΡΡ ΠΎΠ±Π»Π°ΡΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΡΡΠΈΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΈΠ΄ΠΆΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 320 Γ 200, ΠΎΠ±Π»Π°ΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΎΠΊΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ 320 Γ 200, Π²Π΅ΡΡ Π½ΠΈΠΉ Π»Π΅Π²ΡΠΉ ΡΠ³ΠΎΠ» ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π² ΠΏΠΎΠ·ΠΈΡΠΈΠΈ (0, 0). Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΈΡΡΠ΅ΠΌΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ.
ΠΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Β«ΠΎΠΊΠ½ΠΎβΠΎΠ±Π»Π°ΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΒ» ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΈΠ»ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΠ΅ΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ (β50, β50) Π΄ΠΎ (+50, +50) Ρ (0, 0) Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Π΄Π°ΡΡ ΠΎΠΊΠ½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
painter.setWindow(-50, -50, 100, 100):
ΠΠ°ΡΠ° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² (β50, β50) Π·Π°Π΄Π°Π΅Ρ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ ΡΠΎΡΠΊΡ, Π° ΠΏΠ°ΡΠ° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² (100, 100) Π·Π°Π΄Π°Π΅Ρ ΡΠΈΡΠΈΠ½Ρ ΠΈ Π²ΡΡΠΎΡΡ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΠΎΡΠΊΠ° Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ (β50, β50) ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΎΡΠΊΠ΅ Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ (0, 0), Π° ΡΠΎΡΠΊΠ° Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ (+50, +50) ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΠΎΡΠΊΠ΅ Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ°ΠΌΠΈ (320, 200). Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ»ΠΈ ΠΎΠ±Π»Π°ΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
Π ΠΈΡ. 8.8. ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ Π² ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ.
Π’Π΅ΠΏΠ΅ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π΄ΠΎΡΠ»Π° Π΄ΠΎ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠ° ΠΌΠ°ΡΡΠΈΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Β«ΠΎΠΊΠ½ΠΎβΠΎΠ±Π»Π°ΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΒ». ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡ Π½Π°ΡΠ°Π»ΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΠΌΠ°ΡΡΡΠ°Π±, ΠΏΠΎΠ²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡ ΠΈ ΠΎΠ±ΡΠ΅Π·Π°ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π±Ρ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΠ»ΠΎΡΡ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΡΠ΅ΠΊΡΡ ΠΏΠΎΠ΄ ΡΠ³Π»ΠΎΠΌ 45Β°, ΠΌΡ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄:
QMatrix matrix;
matrix.rotate(45.0);
painter.setMatrix(matrix);
painter.drawText(rect, Qt::AlignCenter, tr("Revenue"));
ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ drawText(), ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΡΡΡ Π² ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ²ΡΠ·Ρ Β«ΠΎΠΊΠ½ΠΎβΠΎΠ±Π»Π°ΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΒ».
ΠΡΠ»ΠΈ ΠΌΡ Π·Π°Π΄Π°Π΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠΉ, ΠΎΠ½ΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡΠΊΡ (10, 20) Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠΎΡΠΊΠΈ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ°, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ Π½Π°ΡΠ°Π»ΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΎΠΊΠ½Π°, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΠΎΠ²ΠΎΡΠΎΡ ΠΈ Π·Π°ΡΠ΅ΠΌ ΡΠ΄Π΅Π»Π°ΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ ΠΏΠ΅ΡΠ΅Π½ΠΎΡ Π½Π°ΡΠ°Π»Π° ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΎΠΊΠ½Π°, ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Ρ Π΅Π³ΠΎ Π² ΠΏΡΠ΅ΠΆΠ½Π΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
QMatrix matrix;
matrix.translate(-10.0, -20.0);
matrix.rotate(45.0);
matrix.translate(+10.0, +20.0);
painter.setMatrix(matrix);
painter.drawText(rect, Qt::AlignCenter, tr("Revenue"));
ΠΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΊΠ»Π°ΡΡΠ° QPainter β translate(), scale(), rotate() ΠΈ shear():
painter.translate(-10.0, -20.0);
painter.rotate(45.0);
painter.translate(+10.0, +20.0);
painter.drawText(rect, Qt::AlignCenter, tr("Revenue"));
ΠΠΎ Π΅ΡΠ»ΠΈ ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΠΎΠ΄Π½ΠΈ ΠΈ ΡΠ΅ ΠΆΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ, ΡΠΎ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΡΠΈ ΠΈΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΠΈ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ QMatrix ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π»ΡΡΠΈΠΊΠ° Π²ΡΡΠΊΠΈΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅.
Π ΠΈΡ. 8.9. ΠΠΈΠ΄ΠΆΠ΅Ρ OvenTimer.
ΠΠ»Ρ ΠΈΠ»Π»ΡΡΡΡΠ°ΡΠΈΠΈ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΠΎΠ²Π°Π»ΡΡΠΈΠΊΠ° ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° OvenTimer (ΡΠ°ΠΉΠΌΠ΅Ρ Π΄ΡΡ ΠΎΠ²ΠΊΠΈ), ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΡΠΈΡ. 8.9. ΠΠΈΠ΄ΠΆΠ΅Ρ OvenTimer ΠΈΠΌΠΈΡΠΈΡΡΠ΅Ρ ΠΊΡΡ ΠΎΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠΌΠ΅ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΈΡΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π² Π΄ΡΡ ΠΎΠ²ΠΊΠ°Ρ ΡΡΠ°Π»ΠΈ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΠ°ΡΡ. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ²Π΅ΡΠ½ΡΡΡ ΡΡΡΠΊΡ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΡΡ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ. ΠΠΈΡΠΊ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°ΡΠ΅Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΎΡΠΈΠ² ΡΠ°ΡΠΎΠ²ΠΎΠΉ ΡΡΡΠ΅Π»ΠΊΠΈ, ΠΏΠΎΠΊΠ° Π½Π΅ Π΄ΠΎΡΡΠΈΠ³Π½Π΅Ρ ΠΎΡΠΌΠ΅ΡΠΊΠΈ 0, Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΡΠ΅Π³ΠΎ OvenTimer Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠΈΠ³Π½Π°Π» timeout().
01 class OvenTimer : public QWidget