ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³

РисованиС в PyQt5

БистСма рисования PyQt5 способна ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΡƒΡŽ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ, изобраТСния ΠΈ ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹. РисованиС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² прилоТСниях, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚, ΠΈΠ»ΠΈ ΠΌΡ‹ создаём ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ с нуля. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ рисунок, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ API рисования, прСдоставлСнноС инструмСнтариСм PyQt5.

РисованиС дСлаСтся Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π° paintEvent(). Код рисования размСщаСтся ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ begin() ΠΈ end() ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° QPainter. Он выполняСт Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ΅ рисованиС Π½Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°Ρ… ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнтах.

РисованиС тСкста

ΠœΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ с рисования Unicode-тСкста Π² ΠΎΠΊΠ½Π΅.

Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ рисуСм русский тСкст. ВСкст Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎ.

РисованиС дСлаСтся Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… paintEvent.

Класс QPainter ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° всС Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ΅ рисованиС. ВсС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ рисования ΠΈΠ΄ΡƒΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ begin() ΠΈ end().

ЀактичСскоС рисованиС дСлСгируСтся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ drawText().

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ опрСдСляСм Ρ€ΡƒΡ‡ΠΊΡƒ ΠΈ ΡˆΡ€ΠΈΡ„Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ тСкст.

ΠœΠ΅Ρ‚ΠΎΠ΄ drawText() рисуСт тСкст Π² ΠΎΠΊΠ½Π΅. ΠœΠ΅Ρ‚ΠΎΠ΄ rect() события рисования Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½.

ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³

РисованиС Ρ‚ΠΎΡ‡Π΅ΠΊ

Π’ΠΎΡ‡ΠΊΠ° – это самый простой графичСский ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нарисован. Π­Ρ‚ΠΎ малСнькоС ΠΏΡΡ‚Π½Ρ‹ΡˆΠΊΠΎ Π² ΠΎΠΊΠ½Π΅.

Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ рисуСм 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 для ограничСния области рисования:

ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³

Π’Ρ‚ΠΎΡ€ΠΎΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅:

ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³

Π§Ρ‚ΠΎ shape() Π΄Π΅Π»Π°Π΅Ρ‚, Ρ‚Π°ΠΊ это Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ QPainterPath, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Β«Π½Π΅ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹Π΅Β» части элСмСнта, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° события ΠΌΡ‹ΡˆΠΈ ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ столкновСний (с Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌΠΈ сцСны ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π΅Π΅ элСмСнтами). Π’ случаС QGraphicsPixmapItem это Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡƒΡŽ маску (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, растровоС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° основС PNG с ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΌΠΈ областями ΠΈΠ»ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ SVG). Установив ItemClipsToShape, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ рисованиС Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ части изобраТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π²Π½ΡƒΡ‚Ρ€ΠΈ этой Ρ„ΠΎΡ€ΠΌΡ‹.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ прСимущСством этого ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ взаимодСйствиС ΠΌΡ‹ΡˆΠΈ ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ столкновСний с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°ΠΌΠΈ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ Ρ„Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ ΠΊΡ€ΡƒΠ³Π° ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π°.

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ Ρ‰Π΅Π»ΠΊΠ½Π΅Ρ‚Π΅ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ ΠΊΡ€ΡƒΠ³Π° (Π½ΠΎ всС Π΅Ρ‰Π΅ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ изобраТСния), элСмСнт Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ событиС. Π’Π°ΠΊΠΆΠ΅, Ссли ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ маскированиС (PNG с ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΌΠΈ областями), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹, этот ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ это Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Β«ΠΊΡΡˆΠΈΡ€ΡƒΡΒ» Ρ„ΠΈΠ³ΡƒΡ€Ρƒ, ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ускоряСм процСсс рисования (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Qt позаботится ΠΎΠ± этом, Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, выполняСмой с использованиСм python).

Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π»ΠΎΠ²ΡƒΡˆΠΊΠ° Π² ΠΎΠ±ΠΎΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ…: Ссли ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ сторон изобраТСния сильно отличаСтся ΠΎΡ‚ 1: 1, Ρƒ вас всСгда Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. НапримСр, Π½Π° ΠΌΠΎΠ΅ΠΌ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ ΠΎΠ½ΠΎ всСгда Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π² 60 пиксСлях справа ΠΎΡ‚ фактичСской ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ элСмСнта. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этого, функция updateRect Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ, ΠΈ, ΠΊ соТалСнию, Π²Π°ΠΌ придСтся ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ paint() (ΠΏΡ€ΠΈ этом ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ быстрСС, Ρ‡Π΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹):

Π­Ρ‚ΠΎ заставит boundingRect (ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΡƒΡŽ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΡŽΡŽ Ρ„ΠΎΡ€ΠΌΡƒ) ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вСсь элСмСнт Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ элСмСнта.

ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³

Π₯отя ΠΌΠ΅ΠΆΠ΄Ρƒ этими двумя ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… слСва, справа я Π²Ρ‹Π΄Π΅Π»ΠΈΠ» фактичСскиС Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта, ΠΏΠΎΠΊΠ°Π·Π°Π² ΠΈΡ… boundingRect (синим Ρ†Π²Π΅Ρ‚ΠΎΠΌ), << X1>> (красным), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для событий ΠΌΡ‹ΡˆΠΈ, обнаруТСния столкновСний ΠΈ отсСчСния краски; Π·Π΅Π»Π΅Π½Ρ‹ΠΉ ΠΊΡ€ΡƒΠ³ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΊΡ€ΡƒΠ³, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΠΊΠ°ΠΊ для Ρ„ΠΎΡ€ΠΌΡ‹, Ρ‚Π°ΠΊ ΠΈ для рисования.
ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° основС исходного Ρ€Π°Π·ΠΌΠ΅Ρ€Π° изобраТСния, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ справа Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° основС эффСктивного Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΡ€ΡƒΠ³Π°, ΠΊΠ°ΠΊ описано Π²Ρ‹ΡˆΠ΅.

РисованиС ΠΊΡ€ΡƒΠ³Π° Π²ΠΎΠΊΡ€ΡƒΠ³ изобраТСния

К соТалСнию, Ρ„Π»Π°Π³ ItemClipsToShape Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ сглаТиваниС для отсСчСния: Ссли ΠΌΡ‹ просто нарисуСм ΠΊΡ€ΡƒΠ³ послС рисования изобраТСния, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ уТасным. Π‘Π»Π΅Π²Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΡ€ΡƒΠ³ ΠΎΡ‡Π΅Π½ΡŒ пиксСлизирован ΠΈ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ совпадаСт с ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π‘ΠΏΡ€Π°Π²Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π°.

ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ это, Ρ„Π»Π°Π³ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ установлСн, ΠΈ функция рисования Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

РисованиС Π² PyQt5 [Π£Ρ€ΠΎΠΊ β„–10]

ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³

БистСма рисования PyQt5 ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΡƒΡŽ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ, изобраТСния ΠΈ ΠΊΠΎΠ½Ρ‚ΡƒΡ€ основанного Π½Π° ΡˆΡ€ΠΈΡ„Ρ‚Π΅ тСкста. РисованиС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² прилоТСниях, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚, ΠΈΠ»ΠΈ ΠΌΡ‹ создаём ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ с нуля. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ рисунок, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ API рисования, прСдоставлСнноС инструмСнтариСм PyQt5.

РисованиС дСлаСтся Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π° paintEvent(). Код рисования размСщаСтся ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ begin() ΠΈ end() ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° QPainter. Он исполняСт Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ΅ рисованиС Π½Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°Ρ… ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΎΠΊΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… элСмСнтах.

РисованиС тСкста

ΠœΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ с рисования Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Unicode-тСкста Π² клиСнтском пространствС ΠΎΠΊΠ½Π°.

Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ рисуСм русскоязычный тСкст. ВСкст Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎ.

РисованиС дСлаСтся Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… события рисования.

Класс QPainter ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° всС Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ΅ рисованиС. ВсС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ рисования ΠΈΠ΄ΡƒΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ begin() ΠΈ end(). ЀактичСскоС рисованиС дСлСгируСтся ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ drawText().

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ опрСдСляСм ΠΊΠ°Ρ€Π°Π½Π΄Π°Ρˆ ΠΈ ΡˆΡ€ΠΈΡ„Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ тСкст.

ΠœΠ΅Ρ‚ΠΎΠ΄ drawText() рисуСт тСкст Π² ΠΎΠΊΠ½Π΅. ΠœΠ΅Ρ‚ΠΎΠ΄ rect() события рисования Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½Π½Ρ‹ΠΌ.

ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³

Рисунок: РисованиС тСкста

РисованиС Ρ‚ΠΎΡ‡Π΅ΠΊ

Π’ΠΎΡ‡ΠΊΠ° – это самый простой графичСский ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нарисован. Π­Ρ‚ΠΎ малСнькоС ΠΏΡΡ‚Π½Ρ‹ΡˆΠΊΠΎ Π² ΠΎΠΊΠ½Π΅. Для Π²Ρ‹Π±ΠΎΡ€Π° случайного мСста Π² ΠΎΠΊΠ½Π΅, ΠΌΡ‹ использовали ΠΌΠΎΠ΄ΡƒΠ»ΡŒ random python для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ случайных Ρ‚ΠΎΡ‡Π΅ΠΊ.

Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ рисуСм 1000 красных Ρ‚ΠΎΡ‡Π΅ΠΊ Π² клиСнтской части ΠΎΠΊΠ½Π°.

ΠœΡ‹ устанавливаСм ΠΊΠ°Ρ€Π°Π½Π΄Π°Ρˆ красного Ρ†Π²Π΅Ρ‚Π°. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΡƒΡŽ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΡƒΡŽ констранту Qt.red.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ мСняСм Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠΊΠ½Π°, вызываСтся событиС рисования. ΠœΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠΊΠ½Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° size(). ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠΊΠ½Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΏΠΎ всСй клиСнтской части ΠΎΠΊΠ½Π°.

ΠœΡ‹ рисуСм Ρ‚ΠΎΡ‡ΠΊΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° drawPoint().

ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³

Π¦Π²Π΅Ρ‚Π°

Π¦Π²Π΅Ρ‚ – это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ собой ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ красного, Π·Π΅Π»Ρ‘Π½ΠΎΠ³ΠΎ ΠΈ синСго (RGB) Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ интСнсивности. ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ значСния RGB находятся Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 0 Π΄ΠΎ 255. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ способами. Π‘Π°ΠΌΡ‹ΠΉ распространённый – дСсятичныС значСния RGB ΠΈΠ»ΠΈ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ значСния. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ значСния RGBA, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ красный, Π·Π΅Π»Ρ‘Π½Ρ‹ΠΉ, синий ΠΈ Π°Π»ΡŒΡ„Π°-ΠΊΠ°Π½Π°Π». Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ добавляСм Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ прозрачности. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π°Π»ΡŒΡ„Π° 255 опрСдСляСт ΠΏΠΎΠ»Π½ΡƒΡŽ Π½Π΅ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ, 0 – полная ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ, Ρ‚.Π΅. Ρ†Π²Π΅Ρ‚ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌ.

Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ рисуСм 3 ΠΎΠΊΡ€Π°ΡˆΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°.

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ опрСдСляСм Ρ†Π²Π΅Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΡƒΡŽ систСму счислСния.

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ опрСдСляСм ΠΊΠΈΡΡ‚ΡŒ ΠΈ рисуСм ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ. ΠšΠΈΡΡ‚ΡŒ – это элСмСнтарный графичСский ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΎΠ½ очСртания. ΠœΠ΅Ρ‚ΠΎΠ΄ drawRext() ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° – значСния x ΠΈ y Π½Π° осях. Π’Ρ€Π΅Ρ‚ΠΈΠΉ ΠΈ Ρ‡Π΅Ρ‚Π²Ρ‘Ρ€Ρ‚Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ – ΡˆΠΈΡ€ΠΈΠ½Π° ΠΈ высота ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°. ΠœΠ΅Ρ‚ΠΎΠ΄ рисуСт ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ ΠΊΠ°Ρ€Π°Π½Π΄Π°Ρˆ ΠΈ ΠΊΠΈΡΡ‚ΡŒ.

ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³

QPen – это элСмСнтарный графичСский ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈΠ½ΠΈΠΈ, ΠΊΡ€ΠΈΠ²Ρ‹Π΅ ΠΈ ΠΊΠΎΠ½Ρ‚ΡƒΡ€Ρ‹ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ², эллипсов, ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ² ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„ΠΎΡ€ΠΌ.

Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ рисуСм ΡˆΠ΅ΡΡ‚ΡŒ Π»ΠΈΠ½ΠΈΠΉ. Π›ΠΈΠ½ΠΈΠΈ Ρ€ΠΈΡΡƒΡŽΡ‚ΡΡ Π² ΡˆΠ΅ΡΡ‚ΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… стилях ΠΊΠ°Ρ€Π°Π½Π΄Π°ΡˆΠ°. БущСствуСт ΠΏΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… стилСй ΠΊΠ°Ρ€Π°Π½Π΄Π°ΡˆΠ°. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ стили ΠΊΠ°Ρ€Π°Π½Π΄Π°ΡˆΠ°. ПослСдняя линия нарисована с использованиСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ стиля.

ΠœΡ‹ создаём ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ QPen. Π¦Π²Π΅Ρ‚ – Ρ‡Ρ‘Ρ€Π½Ρ‹ΠΉ. Π¨ΠΈΡ€ΠΈΠ½Π° устанавливаСтся Π² 2 пиксСля Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ различия ΠΌΠ΅ΠΆΠ΄Ρƒ стилями ΠΊΠ°Ρ€Π°Π½Π΄Π°ΡˆΠ°. Qt.SolidLine – это ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… стилСй.

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ опрСдСляСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΡΡ‚ΠΈΠ»ΡŒ ΠΊΠ°Ρ€Π°Π½Π΄Π°ΡˆΠ°. ΠœΡ‹ устанавливаСм ΡΡ‚ΠΈΠ»ΡŒ ΠΊΠ°Ρ€Π°Π½Π΄Π°ΡˆΠ° Qt.CustomDashLine ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ setDashPattern(). Бписок чисСл опрСдСляСт ΡΡ‚ΠΈΠ»ΡŒ. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Π°ΠΆΠ΅ нСсколько чисСл. НСчётныС числа ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΡˆΡ‚Ρ€ΠΈΡ…ΠΈ, Ρ‡Ρ‘Ρ‚Π½Ρ‹Π΅ числа – ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠΈ. Π§Π΅ΠΌ большС число, Ρ‚Π΅ΠΌ большС ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ ΠΈΠ»ΠΈ ΡˆΡ‚Ρ€ΠΈΡ…. Наш ΠΎΠ±Ρ€Π°Π·Π΅Ρ† – ΡˆΡ‚Ρ€ΠΈΡ… Π² 1 пиксСль, ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ Π² 4 пиксСля, ΡˆΡ‚Ρ€ΠΈΡ… Π² 5 пиксСлСй, ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ Π² 4 пиксСля, ΠΈ Ρ‚.Π΄.

ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³

Рисунок: Π‘Ρ‚ΠΈΠ»ΠΈ ΠΊΠ°Ρ€Π°Π½Π΄Π°ΡˆΠ°

QBrush

QBrush – это элСмСнтарный графичСский ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для рисования Ρ„ΠΎΠ½Π° графичСских Ρ„ΠΎΡ€ΠΌ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ, эллипсы ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ. ΠšΠΈΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Ρ€Ρ‘Ρ… Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ²: прСдопрСдСлённая ΠΊΠΈΡΡ‚ΡŒ, Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚, ΠΎΠ±Ρ€Π°Π·Π΅Ρ† тСкстуры.

Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΌΡ‹ рисуСм Π΄Π΅Π²ΡΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ².

ΠœΡ‹ опрСдСляСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ кисти. ΠœΡ‹ устанавливаСм Π΅Π³ΠΎ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ рисования ΠΈ рисуСм ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° drawRect().

ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³

Π’ этой части руководства PyQt5, ΠΌΡ‹ сдСлали Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ основы рисования.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

РисуСм Π»ΠΈΠ½ΠΈΠΈ, ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ, ΠΊΡ€ΡƒΠ³ ΠΈ тСкст Π² Tkinter [Π£Ρ€ΠΎΠΊ β„–6]

ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³

ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³

Π’ этой части изучСния Tkinter ΠΌΡ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ порисуСм. РисованиС Π² Tkinter Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° Canvas. Π­Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» высокого уровня, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΠΊΡƒ Π² Tkinter. РисованиС ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для создания Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² статистики, ΡΠ°ΠΌΠΎΠ΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΈΠ³Ρ€.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ курса

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ

РисуСм Π»ΠΈΠ½ΠΈΠΈ Π² Tkinter β€” create_line()

Линия – это ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ гСомСтричСский элСмСнт. На Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π΅ Canvas ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ линию ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° create_line().

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ нашСго ΠΊΠΎΠ΄Π°, ΠΌΡ‹ рисуСм простыС Π»ΠΈΠ½ΠΈΠΈ Π² Tkinter.

ΠœΡ‹ нарисовали Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ линию. ΠžΠΏΡ†ΠΈΡ dash позволяСт ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ линию. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²Π° (4, 3) ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚:

Если ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ dash=(1, 1) Ρ‚ΠΎ Ρƒ нас Π±ΡƒΠ΄Π΅Ρ‚ линия ΠΈΠ· Ρ‚ΠΎΡ‡Π΅ΠΊ.

ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³

Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Ρ†Π²Π΅Ρ‚Π½Ρ‹Π΅ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ Π² Tkinter

Π¦Π²Π΅Ρ‚ являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ ΠšΡ€Π°ΡΠ½ΠΎΠ³ΠΎ, Π—Π΅Π»Π΅Π½ΠΎΠ³ΠΎ ΠΈ Π‘ΠΈΠ½Π΅Π³ΠΎ Ρ†Π²Π΅Ρ‚ΠΎΠ² (RGB).

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ нарисовали ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΈ ΠΈ закрасили ΠΈΡ… Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Ρ†Π²Π΅Ρ‚Π°ΠΌΠΈ. ΠœΡ‹ Ρ€Π°Π½Π΅Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ Ρ†Π²Π΅Ρ‚Π° Π² Tkinter ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρ‹.

ΠœΡ‹ создали Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ canvas.

Π•ΡΡ‚ΡŒ вопросы ΠΏΠΎ Python?

На нашСм Ρ„ΠΎΡ€ΡƒΠΌΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ любой вопрос ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚ ΠΎΡ‚ всСго нашСго сообщСства!

Telegram Π§Π°Ρ‚ & Канал

ВступитС Π² наш Π΄Ρ€ΡƒΠΆΠ½Ρ‹ΠΉ Ρ‡Π°Ρ‚ ΠΏΠΎ Python ΠΈ Π½Π°Ρ‡Π½ΠΈΡ‚Π΅ ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ с Π΅Π΄ΠΈΠ½ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠ°ΠΌΠΈ! Π‘Ρ‚Π°Π½ΡŒΡ‚Π΅ Ρ‡Π°ΡΡ‚ΡŒΡŽ большого сообщСства!

Паблик VK

Одно ΠΈΠ· самых Π±ΠΎΠ»ΡŒΡˆΠΈΡ… сообщСств ΠΏΠΎ Python Π² ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ сСти Π’Πš. Π’ΠΈΠ΄Π΅ΠΎ ΡƒΡ€ΠΎΠΊΠΈ ΠΈ ΠΊΠ½ΠΈΠ³ΠΈ для вас!

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ create_rectangle() ΠΌΡ‹ создаСм ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ Π½Π° холстС. ΠŸΠ΅Ρ€Π²Ρ‹ΠΌΠΈ Ρ‡Π΅Ρ‚Ρ‹Ρ€ΡŒΠΌΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ x ΠΈ y ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π΄Π²ΡƒΡ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΎΡ‡Π΅ΠΊ: Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ Π»Π΅Π²ΠΎΠΉ ΠΈ Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΏΡ€Π°Π²ΠΎΠΉ. ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° outline ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ†Π²Π΅Ρ‚ ΠΊΠΎΠ½Ρ‚ΡƒΡ€Π° ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠ². А ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ fill ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΎΠΊΡ€Π°ΡˆΠΈΠ²Π°Π½ΠΈΡ всСй Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ области ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°.

ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³

РисуСм Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ Π² Tkinter

На холстС ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ самыС Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹. На прСдставлСнном Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ….

ΠœΡ‹ нарисовали Ρ€Π°Π·Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ Π² ΠΎΠΊΠ½Π΅:

ΠšΠΎΠ½Ρ‚ΡƒΡ€ ΠΎΠΊΡ€Π°ΡˆΠ΅Π½ Π² красный Ρ†Π²Π΅Ρ‚, Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ Π±Ρ‹Π»ΠΈ Π½Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ Π·Π΅Π»Π΅Π½Ρ‹ΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ. Π¨ΠΈΡ€ΠΈΠ½Π° ΠΊΠΎΠ½Ρ‚ΡƒΡ€Π° ΡƒΠΊΠ°Π·Π°Π½Π° Π² 2 пиксСля.

ΠœΠ΅Ρ‚ΠΎΠ΄ create_oval() ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³ Π² Tkinter. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹. Π˜Π½Ρ‹ΠΌΠΈ словами, это x ΠΈ y ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ Π»Π΅Π²ΠΎΠΉ ΠΈ ΠΏΡ€Π°Π²ΠΎΠΉ Π½ΠΈΠΆΠ½Π΅ΠΉ Ρ‚ΠΎΡ‡Π΅ΠΊ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ ΠΊΡ€ΡƒΠ³.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого ΠΊΠΎΠ΄Π° ΠΌΡ‹ создаСм Π΄ΡƒΠ³Ρƒ. Π”ΡƒΠ³Π° являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΊΡ€ΡƒΠ³Π°. ΠœΡ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ нашСй Π΄ΡƒΠ³ΠΈ.

УспСйтС Π·Π°ΠΊΠ°Π·Π°Ρ‚ΡŒ просмотры Π½Π° Π²ΠΈΠ΄Π΅ΠΎ Π² YouTube Π”ΠΎΠΊΡ‚ΠΎΡ€Π‘ΠΌΠΌ ΠΏΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ дСшСвой Ρ†Π΅Π½Π΅ с большими ΠΎΠΏΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ скидками. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, с Π·Π°ΠΊΠ°Π·ΠΎΠΌ Π’Ρ‹ смоТСтС ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ условия Π½Π° ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½ΠΈΠ΅ рСсурса с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Π²Ρ‹Π±ΠΎΡ€Π° Π±ΠΎΠ»Π΅Π΅ подходящСй для Π’Π°ΡˆΠ΅ΠΉ ситуации скорости поступлСния просмотров. Π’ΠΎΡ€ΠΎΠΏΠΈΡ‚Π΅ΡΡŒ, скидки Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ врСмя!

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° start ΠΌΡ‹ устанавливаСм ΡƒΠ³ΠΎΠ» Π΄ΡƒΠ³ΠΈ. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ extent ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ ΡƒΠ³Π»Π°.

Π”Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ позволяСт Π½Π°ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ. Π£ этой Ρ„ΠΈΠ³ΡƒΡ€Ρ‹ присутствуСт большоС количСство ΡƒΠ³Π»ΠΎΠ². Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ Π² Tkinter, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ нСсколько ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ create_polygon().

ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³

ВставляСм ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Canvas

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² canvas Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π΅.

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ„Π°ΠΉΠ» изобраТСния tatras.jpg ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ рядом с Π½Π°ΠΌΠΈ ΠΊΠΎΠ΄ΠΎΠΌ:

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ продСмонстрировано ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Canvas.

Из Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Pillow ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Image ΠΈ ImageTk.

ΠœΡ‹ создаСм Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Canvas. Π£Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ изобраТСния. Π₯олст Π±ΡƒΠ΄Π΅Ρ‚ Π½Π° 20 пиксСлСй ΡˆΠΈΡ€Π΅ ΠΈ Π½Π° 20 пиксСлСй Π²Ρ‹ΡˆΠ΅, Π½Π΅ΠΆΠ΅Π»ΠΈ нашС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ create_image(), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° холстС. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠ½ΠΎ закрСпляСтся Π² сСвСрном ΠΈ Π·Π°ΠΏΠ°Π΄Π½ΠΎΠΌ направлСниях anchor=NW нашСго ΠΎΠΊΠ½Π°. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ image позволяСт ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³

МСняСм ΡˆΡ€ΠΈΡ„Ρ‚ ΠΈ рисуСм тСкст Π² Tkinter

Π’ послСднСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ рассмотрим рисованиС тСкста ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ Canvas Π² Tkinter.

ΠœΡ‹ рисуСм слова ΠΈΠ· пСсни Π² нашСм ΠΎΠΊΠ½Π΅.

ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³

ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³

Являюсь администратором Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΡ€Ρ‚Π°Π»ΠΎΠ² ΠΏΠΎ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΡŽ языков программирования Python, Golang ΠΈ Kotlin. Π’ составС нСбольшой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π΅Π΄ΠΈΠ½ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠΎΠ², ΠΌΡ‹ занимаСмся популяризациСй языков программирования Π½Π° Ρ€ΡƒΡΡΠΊΠΎΡΠ·Ρ‹Ρ‡Π½ΡƒΡŽ Π°ΡƒΠ΄ΠΈΡ‚ΠΎΡ€ΠΈΡŽ. Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ статСй Π±Ρ‹Π»Π° Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π° Π½Π°ΠΌΠΈ Π½Π° русский язык ΠΈ распространяСтся бСсплатно.

E-mail: vasile.buldumac@ati.utm.md

ΠžΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅
Universitatea Tehnică a Moldovei (utm.md)

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΠΎΡ‡Π΅ΠΌΡƒ моя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ рисуСт ΠΊΡ€ΡƒΠ³ Π² pyqt5

Π― Ρ…ΠΎΡ‡Ρƒ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³ ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ, Π½ΠΎ ΠΏΠΎΡ‡Π΅ΠΌΡƒ-Ρ‚ΠΎ Π½Π΅ получаСтся.
.ui Ρ„Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. ΠŸΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅ поТалуйста

main.py

untitled.ui

ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³

ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³

2 ΠΎΡ‚Π²Π΅Ρ‚Π° 2

ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³

ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³

Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ пСрСвСсти QT интСрфСйс Π² python, Π° Π½Π΅ Π² xml. Для этого ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку (cmd) ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ cd ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΠΏΠ°ΠΏΠΊΡƒ с Ρ„Π°ΠΉΠ»ΠΎΠΌ. Π”Π°Π»Π΅Π΅ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ созданной Π² pyqt Π΄ΠΈΠ·Π°ΠΉΠ½Π΅Ρ€Π΅ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΊΡ€ΡƒΠ³

Всё Π΅Ρ‰Ρ‘ ΠΈΡ‰Π΅Ρ‚Π΅ ΠΎΡ‚Π²Π΅Ρ‚? ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ вопросы с ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ python pyqt5 gui pyqt qpainter ΠΈΠ»ΠΈ Π·Π°Π΄Π°ΠΉΡ‚Π΅ свой вопрос.

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅

ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° Π»Π΅Π½Ρ‚Ρƒ

Для подписки Π½Π° Π»Π΅Π½Ρ‚Ρƒ скопируйтС ΠΈ Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ эту ссылку Π² Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для чтСния RSS.

Π΄ΠΈΠ·Π°ΠΉΠ½ сайта / Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏ Β© 2021 Stack Exchange Inc; ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π½Π° условиях Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ cc by-sa. rev 2021.11.12.40742

НаТимая Β«ΠŸΡ€ΠΈΠ½ΡΡ‚ΡŒ всС Ρ„Π°ΠΉΠ»Ρ‹ cookieΒ» Π²Ρ‹ ΡΠΎΠ³Π»Π°ΡˆΠ°Π΅Ρ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Stack Exchange ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ cookie Π½Π° вашСм устройствС ΠΈ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² соотвСтствии с нашСй ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΎΠΉ Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² cookie.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *