ΠΊΠ°ΠΊ Π½Π° ΡΠΎΡΠΌΠ΅ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΉ Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ΡΠ΅ Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΡΡΠ³
Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² PyQt5
Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ PyQt5 ΡΠΏΠΎΡΠΎΠ±Π½Π° ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π²Π΅ΠΊΡΠΎΡΠ½ΡΡ Π³ΡΠ°ΡΠΈΠΊΡ, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΡΠΈΡΡΡ. Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ , ΠΊΠΎΠ³Π΄Π° ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΡΠ»ΡΡΡΠΈΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ, ΠΈΠ»ΠΈ ΠΌΡ ΡΠΎΠ·Π΄Π°ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ Ρ Π½ΡΠ»Ρ. Π§ΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΈΡΡΠ½ΠΎΠΊ, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ API ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΌ PyQt5.
Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π΅Π»Π°Π΅ΡΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΌΠ΅ΡΠΎΠ΄Π° paintEvent(). ΠΠΎΠ΄ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ begin() ΠΈ end() ΠΎΠ±ΡΠ΅ΠΊΡΠ° QPainter. ΠΠ½ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠ΅ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°Ρ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ .
Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ°
ΠΡ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Unicode-ΡΠ΅ΠΊΡΡΠ° Π² ΠΎΠΊΠ½Π΅.
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΌΡ ΡΠΈΡΡΠ΅ΠΌ ΡΡΡΡΠΊΠΈΠΉ ΡΠ΅ΠΊΡΡ. Π’Π΅ΠΊΡΡ Π²ΡΡΠΎΠ²Π½Π΅Π½ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎ ΠΈ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎ.
Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π΅Π»Π°Π΅ΡΡΡ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ paintEvent.
ΠΠ»Π°ΡΡ QPainter ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° Π²ΡΠ΅ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠ΅ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ΄ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ begin() ΠΈ end().
Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π΅Π»Π΅Π³ΠΈΡΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ drawText().
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΡΡΠΊΡ ΠΈ ΡΡΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡ.
ΠΠ΅ΡΠΎΠ΄ drawText() ΡΠΈΡΡΠ΅Ρ ΡΠ΅ΠΊΡΡ Π² ΠΎΠΊΠ½Π΅. ΠΠ΅ΡΠΎΠ΄ rect() ΡΠΎΠ±ΡΡΠΈΡ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ½.
Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΡΠ΅ΠΊ
Π’ΠΎΡΠΊΠ° β ΡΡΠΎ ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°ΡΠΈΡΠΎΠ²Π°Π½. ΠΡΠΎ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΎΠ΅ ΠΏΡΡΠ½ΡΡΠΊΠΎ Π² ΠΎΠΊΠ½Π΅.
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΌΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠΈΡΡΠ΅ΠΌ 1000 ΠΊΡΠ°ΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ Π² ΠΎΠΊΠ½Π΅.
ΠΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΡΡΠΊΡ ΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ°. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΡΠ²Π΅ΡΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ Qt.red.
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠΊΠ½Π°, Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ paintEvent. ΠΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠΊΠ½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° size(). ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠΊΠ½Π°, ΡΡΠΎΠ±Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠΎΡΠΊΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠΊΠ½Ρ.
ΠΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠΎΡΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° drawPoint().
Π¦Π²Π΅ΡΠ°
Π¦Π²Π΅Ρ β ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠΎΠ±ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ, Π·Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈ ΡΠΈΠ½Π΅Π³ΠΎ (RGB) Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΠΈ. ΠΠΎΡΡΠ΅ΠΊΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ RGB Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ 0 Π΄ΠΎ 255. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ²Π΅Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ. Π‘Π°ΠΌΡΠΉ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠΉ β Π΄Π΅ΡΡΡΠΈΡΠ½ΡΠ΅ ΠΈΠ»ΠΈ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ RGB. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ RGBA, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡ ΠΊΡΠ°ΡΠ½ΡΠΉ, Π·Π΅Π»ΡΠ½ΡΠΉ, ΡΠΈΠ½ΠΈΠΉ ΠΈ Π°Π»ΡΡΠ°-ΠΊΠ°Π½Π°Π». ΠΠ΄Π΅ΡΡ ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΠΈ. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ Π°Π»ΡΡΠ° 255 ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΠΎΠ»Π½ΡΡ Π½Π΅ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΡ, 0 β ΠΏΠΎΠ»Π½Π°Ρ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΡ, Ρ.Π΅. ΡΠ²Π΅Ρ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌ.
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΌΡ ΡΠΈΡΡΠ΅ΠΌ 3 ΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°.
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΠ²Π΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ.
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΊΠΈΡΡΡ ΠΈ ΡΠΈΡΡΠ΅ΠΌ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ. ΠΠΈΡΡΡ β ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ½ ΠΎΡΠ΅ΡΡΠ°Π½ΠΈΡ. ΠΠ΅ΡΠΎΠ΄ drawRect() ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅ΡΡΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°. ΠΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π° β Π·Π½Π°ΡΠ΅Π½ΠΈΡ x ΠΈ y Π½Π° ΠΎΡΡΡ . Π’ΡΠ΅ΡΠΈΠΉ ΠΈ ΡΠ΅ΡΠ²ΡΡΡΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ β ΡΠΈΡΠΈΠ½Π° ΠΈ Π²ΡΡΠΎΡΠ° ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°. ΠΠ΅ΡΠΎΠ΄ ΡΠΈΡΡΠ΅Ρ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ΅ΠΊΡΡΠΈΠ΅ ΡΡΡΠΊΡ ΠΈ ΠΊΠΈΡΡΡ.
QPen (ΡΡΡΠΊΠ°) β ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠΈΡΠΎΠ²Π°ΡΡ Π»ΠΈΠ½ΠΈΠΈ, ΠΊΡΠΈΠ²ΡΠ΅ ΠΈ ΠΊΠΎΠ½ΡΡΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ², ΡΠ»Π»ΠΈΠΏΡΠΎΠ², ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΠ³ΡΡ.
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΌΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠ΅ΡΡΡ Π»ΠΈΠ½ΠΈΠΉ. ΠΠΈΠ½ΠΈΠΈ ΡΠΈΡΡΡΡΡΡ Π² ΡΠ΅ΡΡΠΈ ΡΠ°Π·Π½ΡΡ ΡΡΠΈΠ»ΡΡ ΡΡΡΠΊΠΈ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΡΡΡ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΡΡΠΈΠ»Π΅ΠΉ QPen. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΡΠΈΠ»ΠΈ. ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ Π»ΠΈΠ½ΠΈΡ Π½Π°ΡΠΈΡΠΎΠ²Π°Π½Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΡΡΠΈΠ»Ρ.
ΠΡ ΡΠΎΠ·Π΄Π°ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ QPen. Π¦Π²Π΅Ρ β ΡΡΡΠ½ΡΠΉ. Π¨ΠΈΡΠΈΠ½Π° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π² 2 ΠΏΠΈΠΊΡΠ΅Π»Ρ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π²ΠΈΠ΄Π΅ΡΡ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠ»ΡΠΌΠΈ ΡΡΡΠΊΠΈ. Qt.SolidLine β ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΡΡΠΈΠ»Π΅ΠΉ (ΠΆΠΈΡΠ½Π°Ρ Π»ΠΈΠ½ΠΈΡ).
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΡΠΈΠ»Ρ ΡΡΡΠΊΠΈ. ΠΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΡΠΈΠ»Ρ ΡΡΡΠΊΠΈ Qt.CustomDashLine ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ setDashPattern(). Π‘ΠΏΠΈΡΠΎΠΊ ΡΠΈΡΠ΅Π» ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΡΠΈΠ»Ρ. ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄Π°ΠΆΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΠ΅Π». ΠΠ΅ΡΡΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠΏΠ»ΠΎΡΠ½ΡΡ Π»ΠΈΠ½ΠΈΡ, ΡΡΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π° β ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠΈ. Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΈΡΠ»ΠΎ, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ ΠΈΠ»ΠΈ ΡΡΡΠΈΡ . ΠΠ°Ρ ΠΎΠ±ΡΠ°Π·Π΅Ρ β ΡΡΡΠΈΡ Π² 1 ΠΏΠΈΠΊΡΠ΅Π»Ρ, ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ Π² 4 ΠΏΠΈΠΊΡΠ΅Π»Ρ, ΡΡΡΠΈΡ Π² 5 ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ, ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ Π² 4 ΠΏΠΈΠΊΡΠ΅Π»Ρ, ΠΈ Ρ.Π΄.
Π’ΠΎ, ΡΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ, Ρ ΠΎΡΠΎΡΠΎ Π²ΠΈΠ΄Π½ΠΎ Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅.
QBrush
QBrush β ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ½Π° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΎΡΠΌ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΈ, ΡΠ»Π»ΠΈΠΏΡΡ ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΈ. ΠΠΈΡΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΡ ΡΠ°Π·Π½ΡΡ ΡΠΈΠΏΠΎΠ²: ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½Π°Ρ ΠΊΠΈΡΡΡ, Π³ΡΠ°Π΄ΠΈΠ΅Π½Ρ, ΠΎΠ±ΡΠ°Π·Π΅Ρ ΡΠ΅ΠΊΡΡΡΡΡ.
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΌΡ ΡΠΈΡΡΠ΅ΠΌ Π΄Π΅Π²ΡΡΡ ΡΠ°Π·Π½ΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ².
ΠΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠΈΡΡΠΈ. ΠΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ Π² ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΈΡΡΠ΅ΠΌ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° drawRect().
Π ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° PyQt5, ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ½ΠΎΠ²Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΡΡΠ³ΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ pyqt4?
ΠΠ΄Π΅ΡΡ Ρ Π½Π°ΠΏΠΈΡΠ°Π» ΡΡΠΎΡ ΠΊΠΎΠ΄, Π½ΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π»:
3 ΠΎΡΠ²Π΅ΡΠ°
ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° paint () ΠΊΠ»Π°ΡΡΠ° QGraphicsPixmapItem ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ setClipPath Π΄Π»Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ:
ΠΡΠΎΡΠΎΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅:
Π§ΡΠΎ shape() Π΄Π΅Π»Π°Π΅Ρ, ΡΠ°ΠΊ ΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ QPainterPath, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Β«Π½Π΅ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΡΠ΅Β» ΡΠ°ΡΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΡΠΎΠ±ΡΡΠΈΡ ΠΌΡΡΠΈ ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΉ (Ρ Π³ΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ ΡΡΠ΅Π½Ρ ΠΈ Π΄ΡΡΠ³ΠΈΠΌΠΈ Π΅Π΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ). Π ΡΠ»ΡΡΠ°Π΅ QGraphicsPixmapItem ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΈΡΡΠ²Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΌΠ°ΡΠΊΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΡΡΡΠΎΠ²ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ PNG Ρ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΡΠΌΠΈ ΠΎΠ±Π»Π°ΡΡΡΠΌΠΈ ΠΈΠ»ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ SVG). Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΠ² ItemClipsToShape, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΎΡ Π²Π°ΡΡΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ ΡΠ°ΡΡΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π²Π½ΡΡΡΠΈ ΡΡΠΎΠΉ ΡΠΎΡΠΌΡ.
ΠΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎ, ΡΡΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΡΡΠΈ ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΉ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ°ΠΌΠΈ ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠΎΡΠΌΡ ΠΊΡΡΠ³Π° ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ°.
ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ΅Π»ΠΊΠ½Π΅ΡΠ΅ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΠΊΡΡΠ³Π° (Π½ΠΎ Π²ΡΠ΅ Π΅ΡΠ΅ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° ΠΎΠ±Π»Π°ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ), ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡ ΡΠΎΠ±ΡΡΠΈΠ΅. Π’Π°ΠΊΠΆΠ΅, Π΅ΡΠ»ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ (PNG Ρ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΡΠΌΠΈ ΠΎΠ±Π»Π°ΡΡΡΠΌΠΈ), ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΡΡ ΡΠΈΠ³ΡΡΡ, ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΠΎ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Β«ΠΊΡΡΠΈΡΡΡΒ» ΡΠΈΠ³ΡΡΡ, ΠΌΡ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΡΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ΡΠ°ΠΊ ΠΊΠ°ΠΊ Qt ΠΏΠΎΠ·Π°Π±ΠΎΡΠΈΡΡΡ ΠΎΠ± ΡΡΠΎΠΌ, Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΉ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ python).
ΠΠΌΠ΅ΠΉΡΠ΅ Π² Π²ΠΈΠ΄Ρ, ΡΡΠΎ Π΅ΡΡΡ Π»ΠΎΠ²ΡΡΠΊΠ° Π² ΠΎΠ±ΠΎΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π°Ρ : Π΅ΡΠ»ΠΈ ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΡΠΎΠ½ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΈΠ»ΡΠ½ΠΎ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ 1: 1, Ρ Π²Π°Ρ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΠΌΠΎΠ΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ ΠΎΠ½ΠΎ Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² 60 ΠΏΠΈΠΊΡΠ΅Π»ΡΡ ΡΠΏΡΠ°Π²Π° ΠΎΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΡΡΠΎΠ³ΠΎ, ΡΡΠ½ΠΊΡΠΈΡ updateRect Π±ΡΠ΄Π΅Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ, ΠΈ, ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π²Π°ΠΌ ΠΏΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ paint() (ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ):
ΠΡΠΎ Π·Π°ΡΡΠ°Π²ΠΈΡ boundingRect (ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΡΡ ΡΠΎΡΠΌΡ) ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ Π²Π΅ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² Π²Π΅ΡΡ Π½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡΠ³Π»Ρ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°.
Π₯ΠΎΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ Π΄Π²ΡΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΡΠ°Π·Π½ΠΈΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ
ΡΠ»Π΅Π²Π°, ΡΠΏΡΠ°Π²Π° Ρ Π²ΡΠ΄Π΅Π»ΠΈΠ» ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π³ΡΠ°Π½ΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, ΠΏΠΎΠΊΠ°Π·Π°Π² ΠΈΡ
boundingRect (ΡΠΈΠ½ΠΈΠΌ ΡΠ²Π΅ΡΠΎΠΌ), << X1>> (ΠΊΡΠ°ΡΠ½ΡΠΌ), ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΌΡΡΠΈ, ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΡΡΠΎΠ»ΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΉ ΠΈ ΠΎΡΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΡΠ°ΡΠΊΠΈ; Π·Π΅Π»Π΅Π½ΡΠΉ ΠΊΡΡΠ³ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΎΠ±ΡΠΈΠΉ ΠΊΡΡΠ³, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ ΠΊΠ°ΠΊ Π΄Π»Ρ ΡΠΎΡΠΌΡ, ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΠΈΠΌΠ΅ΡΡ Π² ΡΠ΅Π½ΡΡΠ΅ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΡΠΏΡΠ°Π²Π° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΊΡΡΠ³Π°, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π²ΡΡΠ΅.
Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΡΡΠ³Π° Π²ΠΎΠΊΡΡΠ³ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, ΡΠ»Π°Π³ ItemClipsToShape Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ³Π»Π°ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΡΡΠ΅ΡΠ΅Π½ΠΈΡ: Π΅ΡΠ»ΠΈ ΠΌΡ ΠΏΡΠΎΡΡΠΎ Π½Π°ΡΠΈΡΡΠ΅ΠΌ ΠΊΡΡΠ³ ΠΏΠΎΡΠ»Π΅ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠΆΠ°ΡΠ½ΡΠΌ. Π‘Π»Π΅Π²Π° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ ΠΊΡΡΠ³ ΠΎΡΠ΅Π½Ρ ΠΏΠΈΠΊΡΠ΅Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ ΠΈ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π‘ΠΏΡΠ°Π²Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ ΠΊΠ°ΡΡΠΈΠ½Π°.
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°ΡΡ ΡΡΠΎ, ΡΠ»Π°Π³ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½, ΠΈ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ.
Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² PyQt5 [Π£ΡΠΎΠΊ β10]
Π‘ΠΈΡΡΠ΅ΠΌΠ° ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ PyQt5 ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠ°Π±ΠΎΡΠ΅ Π²Π΅ΠΊΡΠΎΡΠ½ΡΡ Π³ΡΠ°ΡΠΈΠΊΡ, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΊΠΎΠ½ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΡΡΠΈΡΡΠ΅ ΡΠ΅ΠΊΡΡΠ°. Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ , ΠΊΠΎΠ³Π΄Π° ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ, ΠΈΠ»ΠΈ ΠΌΡ ΡΠΎΠ·Π΄Π°ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ Ρ Π½ΡΠ»Ρ. Π§ΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΈΡΡΠ½ΠΎΠΊ, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ API ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΌ PyQt5.
Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π΅Π»Π°Π΅ΡΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΌΠ΅ΡΠΎΠ΄Π° paintEvent(). ΠΠΎΠ΄ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ begin() ΠΈ end() ΠΎΠ±ΡΠ΅ΠΊΡΠ° QPainter. ΠΠ½ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠ΅ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°Ρ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΎΠΊΡΠ°ΡΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ .
Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ°
ΠΡ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Unicode-ΡΠ΅ΠΊΡΡΠ° Π² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΠΎΠΊΠ½Π°.
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΌΡ ΡΠΈΡΡΠ΅ΠΌ ΡΡΡΡΠΊΠΎΡΠ·ΡΡΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ. Π’Π΅ΠΊΡΡ Π²ΡΡΠΎΠ²Π½Π΅Π½ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎ ΠΈ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎ.
Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π΅Π»Π°Π΅ΡΡΡ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΡΠΎΠ±ΡΡΠΈΡ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ»Π°ΡΡ QPainter ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° Π²ΡΠ΅ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΎΠ΅ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ΄ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ begin() ΠΈ end(). Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π΅Π»Π΅Π³ΠΈΡΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ drawText().
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π½Π΄Π°Ρ ΠΈ ΡΡΠΈΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡ.
ΠΠ΅ΡΠΎΠ΄ drawText() ΡΠΈΡΡΠ΅Ρ ΡΠ΅ΠΊΡΡ Π² ΠΎΠΊΠ½Π΅. ΠΠ΅ΡΠΎΠ΄ rect() ΡΠΎΠ±ΡΡΠΈΡ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ, ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ½Π½ΡΠΌ.
Π ΠΈΡΡΠ½ΠΎΠΊ: Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ°
Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΡΠ΅ΠΊ
Π’ΠΎΡΠΊΠ° β ΡΡΠΎ ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π°ΡΠΈΡΠΎΠ²Π°Π½. ΠΡΠΎ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΎΠ΅ ΠΏΡΡΠ½ΡΡΠΊΠΎ Π² ΠΎΠΊΠ½Π΅. ΠΠ»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° Π² ΠΎΠΊΠ½Π΅, ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ random python Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ.
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΌΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠΈΡΡΠ΅ΠΌ 1000 ΠΊΡΠ°ΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ Π² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΎΠΊΠ½Π°.
ΠΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΊΠ°ΡΠ°Π½Π΄Π°Ρ ΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ°. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΡΠ²Π΅ΡΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΡΡΠ°Π½ΡΡ Qt.red.
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠΊΠ½Π°, Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΠΎΠ±ΡΡΠΈΠ΅ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠΊΠ½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° size(). ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠΊΠ½Π°, ΡΡΠΎΠ±Ρ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠΎΡΠΊΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΉ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΎΠΊΠ½Π°.
ΠΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠΎΡΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° drawPoint().
Π¦Π²Π΅ΡΠ°
Π¦Π²Π΅Ρ β ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΡΠΎΠ±ΠΎΠΉ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ, Π·Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈ ΡΠΈΠ½Π΅Π³ΠΎ (RGB) Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎΡΡΠΈ. ΠΠΎΡΡΠ΅ΠΊΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ RGB Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ 0 Π΄ΠΎ 255. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ²Π΅Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ. Π‘Π°ΠΌΡΠΉ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½Π½ΡΠΉ β Π΄Π΅ΡΡΡΠΈΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ RGB ΠΈΠ»ΠΈ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ RGBA, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡ ΠΊΡΠ°ΡΠ½ΡΠΉ, Π·Π΅Π»ΡΠ½ΡΠΉ, ΡΠΈΠ½ΠΈΠΉ ΠΈ Π°Π»ΡΡΠ°-ΠΊΠ°Π½Π°Π». ΠΠ΄Π΅ΡΡ ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΠΈ. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ Π°Π»ΡΡΠ° 255 ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΠΎΠ»Π½ΡΡ Π½Π΅ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΡ, 0 β ΠΏΠΎΠ»Π½Π°Ρ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½ΠΎΡΡΡ, Ρ.Π΅. ΡΠ²Π΅Ρ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌ.
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΌΡ ΡΠΈΡΡΠ΅ΠΌ 3 ΠΎΠΊΡΠ°ΡΠ΅Π½Π½ΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°.
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΠ²Π΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ.
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΊΠΈΡΡΡ ΠΈ ΡΠΈΡΡΠ΅ΠΌ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ. ΠΠΈΡΡΡ β ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ½ ΠΎΡΠ΅ΡΡΠ°Π½ΠΈΡ. ΠΠ΅ΡΠΎΠ΄ drawRext() ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅ΡΡΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°. ΠΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π° β Π·Π½Π°ΡΠ΅Π½ΠΈΡ x ΠΈ y Π½Π° ΠΎΡΡΡ . Π’ΡΠ΅ΡΠΈΠΉ ΠΈ ΡΠ΅ΡΠ²ΡΡΡΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ β ΡΠΈΡΠΈΠ½Π° ΠΈ Π²ΡΡΠΎΡΠ° ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°. ΠΠ΅ΡΠΎΠ΄ ΡΠΈΡΡΠ΅Ρ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ΅ΠΊΡΡΠΈΠ΅ ΠΊΠ°ΡΠ°Π½Π΄Π°Ρ ΠΈ ΠΊΠΈΡΡΡ.
QPen β ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠΈΡΠΎΠ²Π°ΡΡ Π»ΠΈΠ½ΠΈΠΈ, ΠΊΡΠΈΠ²ΡΠ΅ ΠΈ ΠΊΠΎΠ½ΡΡΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ², ΡΠ»Π»ΠΈΠΏΡΠΎΠ², ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ² ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠΎΡΠΌ.
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΌΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠ΅ΡΡΡ Π»ΠΈΠ½ΠΈΠΉ. ΠΠΈΠ½ΠΈΠΈ ΡΠΈΡΡΡΡΡΡ Π² ΡΠ΅ΡΡΠΈ ΡΠ°Π·Π½ΡΡ ΡΡΠΈΠ»ΡΡ ΠΊΠ°ΡΠ°Π½Π΄Π°ΡΠ°. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΏΡΡΡ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΡΡΠΈΠ»Π΅ΠΉ ΠΊΠ°ΡΠ°Π½Π΄Π°ΡΠ°. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΡΠΈΠ»ΠΈ ΠΊΠ°ΡΠ°Π½Π΄Π°ΡΠ°. ΠΠΎΡΠ»Π΅Π΄Π½ΡΡ Π»ΠΈΠ½ΠΈΡ Π½Π°ΡΠΈΡΠΎΠ²Π°Π½Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΡΡΠΈΠ»Ρ.
ΠΡ ΡΠΎΠ·Π΄Π°ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ QPen. Π¦Π²Π΅Ρ β ΡΡΡΠ½ΡΠΉ. Π¨ΠΈΡΠΈΠ½Π° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π² 2 ΠΏΠΈΠΊΡΠ΅Π»Ρ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π²ΠΈΠ΄Π΅ΡΡ ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠ»ΡΠΌΠΈ ΠΊΠ°ΡΠ°Π½Π΄Π°ΡΠ°. Qt.SolidLine β ΡΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΡΡΠΈΠ»Π΅ΠΉ.
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΡΠΈΠ»Ρ ΠΊΠ°ΡΠ°Π½Π΄Π°ΡΠ°. ΠΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΡΠΈΠ»Ρ ΠΊΠ°ΡΠ°Π½Π΄Π°ΡΠ° Qt.CustomDashLine ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ setDashPattern(). Π‘ΠΏΠΈΡΠΎΠΊ ΡΠΈΡΠ΅Π» ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΡΠΈΠ»Ρ. ΠΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄Π°ΠΆΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΈΡΠ΅Π». ΠΠ΅ΡΡΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΡΡΠΈΡ ΠΈ, ΡΡΡΠ½ΡΠ΅ ΡΠΈΡΠ»Π° β ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠΈ. Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΈΡΠ»ΠΎ, ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ ΠΈΠ»ΠΈ ΡΡΡΠΈΡ . ΠΠ°Ρ ΠΎΠ±ΡΠ°Π·Π΅Ρ β ΡΡΡΠΈΡ Π² 1 ΠΏΠΈΠΊΡΠ΅Π»Ρ, ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ Π² 4 ΠΏΠΈΠΊΡΠ΅Π»Ρ, ΡΡΡΠΈΡ Π² 5 ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ, ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ Π² 4 ΠΏΠΈΠΊΡΠ΅Π»Ρ, ΠΈ Ρ.Π΄.
Π ΠΈΡΡΠ½ΠΎΠΊ: Π‘ΡΠΈΠ»ΠΈ ΠΊΠ°ΡΠ°Π½Π΄Π°ΡΠ°
QBrush
QBrush β ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ½Π° Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΎΡΠΌ, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΈ, ΡΠ»Π»ΠΈΠΏΡΡ ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΈ. ΠΠΈΡΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΡ ΡΠ°Π·Π½ΡΡ ΡΠΈΠΏΠΎΠ²: ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½Π°Ρ ΠΊΠΈΡΡΡ, Π³ΡΠ°Π΄ΠΈΠ΅Π½Ρ, ΠΎΠ±ΡΠ°Π·Π΅Ρ ΡΠ΅ΠΊΡΡΡΡΡ.
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΌΡ ΡΠΈΡΡΠ΅ΠΌ Π΄Π΅Π²ΡΡΡ ΡΠ°Π·Π½ΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ².
ΠΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠΈΡΡΠΈ. ΠΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ Π² ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠΈΡΡΠ΅ΠΌ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠ·ΠΎΠ²Π° ΠΌΠ΅ΡΠΎΠ΄Π° drawRect().
Π ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π° PyQt5, ΠΌΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ½ΠΎΠ²Ρ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π ΠΈΡΡΠ΅ΠΌ Π»ΠΈΠ½ΠΈΠΈ, ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΈ, ΠΊΡΡΠ³ ΠΈ ΡΠ΅ΠΊΡΡ Π² Tkinter [Π£ΡΠΎΠΊ β6]
Π ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Tkinter ΠΌΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΈΡΡΠ΅ΠΌ. Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² Tkinter ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° Canvas. ΠΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π³ΡΠ°ΡΠΈΠΊΡ Π² Tkinter. Π ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠΈ, ΡΠ°ΠΌΠΎΠ΄Π΅Π»ΡΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΡ ΠΈΠ³Ρ.
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΊΡΡΡΠ°
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΡΡΠ°ΡΡΠΈ
Π ΠΈΡΡΠ΅ΠΌ Π»ΠΈΠ½ΠΈΠΈ Π² Tkinter β create_line()
ΠΠΈΠ½ΠΈΡ β ΡΡΠΎ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠΉ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ. ΠΠ° Π²ΠΈΠ΄ΠΆΠ΅ΡΠ΅ Canvas ΡΠΎΠ·Π΄Π°ΡΡ Π»ΠΈΠ½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° create_line().
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°, ΠΌΡ ΡΠΈΡΡΠ΅ΠΌ ΠΏΡΠΎΡΡΡΠ΅ Π»ΠΈΠ½ΠΈΠΈ Π² Tkinter.
ΠΡ Π½Π°ΡΠΈΡΠΎΠ²Π°Π»ΠΈ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΡ Π»ΠΈΠ½ΠΈΡ. ΠΠΏΡΠΈΡ dash ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠ½ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π»ΠΈΠ½ΠΈΡ. ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° (4, 3) ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ:
ΠΡΠ»ΠΈ ΡΠΊΠ°Π·Π°ΡΡ dash=(1, 1) ΡΠΎ Ρ Π½Π°Ρ Π±ΡΠ΄Π΅Ρ Π»ΠΈΠ½ΠΈΡ ΠΈΠ· ΡΠΎΡΠ΅ΠΊ.
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ²Π΅ΡΠ½ΡΠ΅ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΈ Π² Tkinter
Π¦Π²Π΅Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΡΠ°ΡΠ½ΠΎΠ³ΠΎ, ΠΠ΅Π»Π΅Π½ΠΎΠ³ΠΎ ΠΈ Π‘ΠΈΠ½Π΅Π³ΠΎ ΡΠ²Π΅ΡΠΎΠ² (RGB).
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ Π½Π°ΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΈ ΠΈ Π·Π°ΠΊΡΠ°ΡΠΈΠ»ΠΈ ΠΈΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠ²Π΅ΡΠ°ΠΌΠΈ. ΠΡ ΡΠ°Π½Π΅Π΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Ρ Π²ΡΠ±ΠΎΡΠΎΠΌ ΡΠ²Π΅ΡΠ° Π² Tkinter ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΡΠ²Π΅ΡΠΎΠ²ΠΎΠΉ ΠΏΠ°Π»ΠΈΡΡΡ.
ΠΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ canvas.
ΠΡΡΡ Π²ΠΎΠΏΡΠΎΡΡ ΠΏΠΎ Python?
ΠΠ° Π½Π°ΡΠ΅ΠΌ ΡΠΎΡΡΠΌΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π΄Π°ΡΡ Π»ΡΠ±ΠΎΠΉ Π²ΠΎΠΏΡΠΎΡ ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΡΠ²Π΅Ρ ΠΎΡ Π²ΡΠ΅Π³ΠΎ Π½Π°ΡΠ΅Π³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°!
Telegram Π§Π°Ρ & ΠΠ°Π½Π°Π»
ΠΡΡΡΠΏΠΈΡΠ΅ Π² Π½Π°Ρ Π΄ΡΡΠΆΠ½ΡΠΉ ΡΠ°Ρ ΠΏΠΎ Python ΠΈ Π½Π°ΡΠ½ΠΈΡΠ΅ ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ Π΅Π΄ΠΈΠ½ΠΎΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠ°ΠΌΠΈ! Π‘ΡΠ°Π½ΡΡΠ΅ ΡΠ°ΡΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°!
ΠΠ°Π±Π»ΠΈΠΊ VK
ΠΠ΄Π½ΠΎ ΠΈΠ· ΡΠ°ΠΌΡΡ Π±ΠΎΠ»ΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ² ΠΏΠΎ Python Π² ΡΠΎΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΡΠΈ ΠΠ. ΠΠΈΠ΄Π΅ΠΎ ΡΡΠΎΠΊΠΈ ΠΈ ΠΊΠ½ΠΈΠ³ΠΈ Π΄Π»Ρ Π²Π°Ρ!
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ create_rectangle() ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ Π½Π° Ρ ΠΎΠ»ΡΡΠ΅. ΠΠ΅ΡΠ²ΡΠΌΠΈ ΡΠ΅ΡΡΡΡΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ x ΠΈ y ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π΄Π²ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΎΡΠ΅ΠΊ: Π²Π΅ΡΡ Π½Π΅ΠΉ Π»Π΅Π²ΠΎΠΉ ΠΈ Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΏΡΠ°Π²ΠΎΠΉ. ΠΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° outline ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Π΄Π°ΡΡ ΡΠ²Π΅Ρ ΠΊΠΎΠ½ΡΡΡΠ° ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠΎΠ². Π ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ fill ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠΊΡΠ°ΡΠΈΠ²Π°Π½ΠΈΡ Π²ΡΠ΅ΠΉ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°.
Π ΠΈΡΡΠ΅ΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΎΡΠΌΡ Π² Tkinter
ΠΠ° Ρ ΠΎΠ»ΡΡΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΌΡΠ΅ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΠ΅ ΡΠΎΡΠΌΡ. ΠΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ .
ΠΡ Π½Π°ΡΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΠ°Π·Π½ΡΠ΅ ΡΠΎΡΠΌΡ Π² ΠΎΠΊΠ½Π΅:
ΠΠΎΠ½ΡΡΡ ΠΎΠΊΡΠ°ΡΠ΅Π½ Π² ΠΊΡΠ°ΡΠ½ΡΠΉ ΡΠ²Π΅Ρ, ΡΠΈΠ³ΡΡΡ Π±ΡΠ»ΠΈ Π½Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ Π·Π΅Π»Π΅Π½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ. Π¨ΠΈΡΠΈΠ½Π° ΠΊΠΎΠ½ΡΡΡΠ° ΡΠΊΠ°Π·Π°Π½Π° Π² 2 ΠΏΠΈΠΊΡΠ΅Π»Ρ.
ΠΠ΅ΡΠΎΠ΄ create_oval() ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΡΡΠ³ Π² Tkinter. ΠΠ΅ΡΠ²ΡΠ΅ ΡΠ΅ΡΡΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΠΈΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠΈΠ³ΡΡΡ. ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΡΡΠΎ x ΠΈ y ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π²Π΅ΡΡ Π½Π΅ΠΉ Π»Π΅Π²ΠΎΠΉ ΠΈ ΠΏΡΠ°Π²ΠΎΠΉ Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΠΎΡΠ΅ΠΊ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ°, Π² ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½ ΠΊΡΡΠ³.
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π΄ΡΠ³Ρ. ΠΡΠ³Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ ΠΊΡΡΠ³Π°. ΠΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π½Π°ΡΠ΅ΠΉ Π΄ΡΠ³ΠΈ.
Π£ΡΠΏΠ΅ΠΉΡΠ΅ Π·Π°ΠΊΠ°Π·Π°ΡΡ ΠΏΡΠΎΡΠΌΠΎΡΡΡ Π½Π° Π²ΠΈΠ΄Π΅ΠΎ Π² YouTube ΠΠΎΠΊΡΠΎΡΠ‘ΠΌΠΌ ΠΏΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ΅Π²ΠΎΠΉ ΡΠ΅Π½Π΅ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΎΠΏΡΠΎΠ²ΡΠΌΠΈ ΡΠΊΠΈΠ΄ΠΊΠ°ΠΌΠΈ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Ρ Π·Π°ΠΊΠ°Π·ΠΎΠΌ ΠΡ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΡΠ»ΠΎΠ²ΠΈΡ Π½Π° ΠΏΡΠΈΠΎΠ±ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠ° Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΡ Π²ΡΠ±ΠΎΡΠ° Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅ΠΉ Π΄Π»Ρ ΠΠ°ΡΠ΅ΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΡ ΠΏΡΠΎΡΠΌΠΎΡΡΠΎΠ². Π’ΠΎΡΠΎΠΏΠΈΡΠ΅ΡΡ, ΡΠΊΠΈΠ΄ΠΊΠΈ Π΄Π΅ΠΉΡΡΠ²ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ!
Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° start ΠΌΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΠ³ΠΎΠ» Π΄ΡΠ³ΠΈ. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ extent ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ³Π»Π°.
ΠΠ°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ. Π£ ΡΡΠΎΠΉ ΡΠΈΠ³ΡΡΡ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ³Π»ΠΎΠ². Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ Π² Tkinter, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π°Π΄Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΌΠ΅ΡΠΎΠ΄ create_polygon().
ΠΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² Canvas
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ Π²ΡΡΠ°Π²ΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² canvas Π²ΠΈΠ΄ΠΆΠ΅ΡΠ΅.
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°ΠΉΠ» ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ tatras.jpg ΠΊΠΎΡΠΎΡΡΠΉ Π½ΡΠΆΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ ΡΡΠ΄ΠΎΠΌ Ρ Π½Π°ΠΌΠΈ ΠΊΠΎΠ΄ΠΎΠΌ:
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² Canvas.
ΠΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Pillow ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΌΠΎΠ΄ΡΠ»ΠΈ Image ΠΈ ImageTk.
ΠΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π²ΠΈΠ΄ΠΆΠ΅Ρ Canvas. Π£ΡΠΈΡΡΠ²Π°Π΅ΠΌ ΡΠ°Π·ΠΌΠ΅ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ. Π₯ΠΎΠ»ΡΡ Π±ΡΠ΄Π΅Ρ Π½Π° 20 ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ ΡΠΈΡΠ΅ ΠΈ Π½Π° 20 ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ Π²ΡΡΠ΅, Π½Π΅ΠΆΠ΅Π»ΠΈ Π½Π°ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ create_image(), ΡΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Ρ ΠΎΠ»ΡΡΠ΅. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠ½ΠΎ Π·Π°ΠΊΡΠ΅ΠΏΠ»ΡΠ΅ΡΡΡ Π² ΡΠ΅Π²Π΅ΡΠ½ΠΎΠΌ ΠΈ Π·Π°ΠΏΠ°Π΄Π½ΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΡ anchor=NW Π½Π°ΡΠ΅Π³ΠΎ ΠΎΠΊΠ½Π°. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ image ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠΎΠ±ΡΠ°Π·ΠΈΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅.
ΠΠ΅Π½ΡΠ΅ΠΌ ΡΡΠΈΡΡ ΠΈ ΡΠΈΡΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡ Π² Tkinter
Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²ΠΈΠ΄ΠΆΠ΅Ρ Canvas Π² Tkinter.
ΠΡ ΡΠΈΡΡΠ΅ΠΌ ΡΠ»ΠΎΠ²Π° ΠΈΠ· ΠΏΠ΅ΡΠ½ΠΈ Π² Π½Π°ΡΠ΅ΠΌ ΠΎΠΊΠ½Π΅.
Π―Π²Π»ΡΡΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΠΎΡΡΠ°Π»ΠΎΠ² ΠΏΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python, Golang ΠΈ Kotlin. Π ΡΠΎΡΡΠ°Π²Π΅ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΅Π΄ΠΈΠ½ΠΎΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠΎΠ², ΠΌΡ Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΡΡΡΡΠΊΠΎΡΠ·ΡΡΠ½ΡΡ Π°ΡΠ΄ΠΈΡΠΎΡΠΈΡ. ΠΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΡΡΠ°ΡΠ΅ΠΉ Π±ΡΠ»Π° Π°Π΄Π°ΠΏΡΠΈΡΠΎΠ²Π°Π½Π° Π½Π°ΠΌΠΈ Π½Π° ΡΡΡΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ ΠΈ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ.
E-mail: vasile.buldumac@ati.utm.md
ΠΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅
Universitatea TehnicΔ a Moldovei (utm.md)
ΠΠΎΡΠ΅ΠΌΡ ΠΌΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ ΡΠΈΡΡΠ΅Ρ ΠΊΡΡΠ³ Π² pyqt5
Π― Ρ
ΠΎΡΡ Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΡΡΠ³ ΠΏΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ, Π½ΠΎ ΠΏΠΎΡΠ΅ΠΌΡ-ΡΠΎ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ.
.ui ΡΠ°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ. ΠΠΎΠΌΠΎΠ³ΠΈΡΠ΅ ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°
main.py
untitled.ui
2 ΠΎΡΠ²Π΅ΡΠ° 2
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΡΠΈ QT ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π² python, Π° Π½Π΅ Π² xml. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ (cmd) ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ cd ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² ΠΏΠ°ΠΏΠΊΡ Ρ ΡΠ°ΠΉΠ»ΠΎΠΌ. ΠΠ°Π»Π΅Π΅ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
ΠΡΡ Π΅ΡΡ ΠΈΡΠ΅ΡΠ΅ ΠΎΡΠ²Π΅Ρ? ΠΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ Π²ΠΎΠΏΡΠΎΡΡ Ρ ΠΌΠ΅ΡΠΊΠ°ΠΌΠΈ python pyqt5 gui pyqt qpainter ΠΈΠ»ΠΈ Π·Π°Π΄Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠΉ Π²ΠΎΠΏΡΠΎΡ.
ΠΠΎΡ ΠΎΠΆΠΈΠ΅
ΠΠΎΠ΄ΠΏΠΈΡΠ°ΡΡΡΡ Π½Π° Π»Π΅Π½ΡΡ
ΠΠ»Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠΈ Π½Π° Π»Π΅Π½ΡΡ ΡΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΠΈ Π²ΡΡΠ°Π²ΡΡΠ΅ ΡΡΡ ΡΡΡΠ»ΠΊΡ Π² Π²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ RSS.
Π΄ΠΈΠ·Π°ΠΉΠ½ ΡΠ°ΠΉΡΠ° / Π»ΠΎΠ³ΠΎΡΠΈΠΏ Β© 2021 Stack Exchange Inc; ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΡΡ Π½Π° ΡΡΠ»ΠΎΠ²ΠΈΡΡ Π»ΠΈΡΠ΅Π½Π·ΠΈΠΈ cc by-sa. rev 2021.11.12.40742
ΠΠ°ΠΆΠΈΠΌΠ°Ρ Β«ΠΡΠΈΠ½ΡΡΡ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ cookieΒ» Π²Ρ ΡΠΎΠ³Π»Π°ΡΠ°Π΅ΡΠ΅ΡΡ, ΡΡΠΎ Stack Exchange ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ ΡΠ°ΠΉΠ»Ρ cookie Π½Π° Π²Π°ΡΠ΅ΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ ΠΈ ΡΠ°ΡΠΊΡΡΠ²Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ Π½Π°ΡΠ΅ΠΉ ΠΠΎΠ»ΠΈΡΠΈΠΊΠΎΠΉ Π² ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² cookie.