Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

На Ρ‡Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈ быстрСС Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ GUI ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅? β€” Π₯Π°Π±Ρ€ Q&A

НС ΡΠ»ΡƒΡˆΠ°ΠΉΡ‚Π΅ Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Delphi Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚.
1.Оно Π½Π΅ развиваСтся (юникод Π² 2010(ΠΈΠ»ΠΈ 2009) Π³ΠΎΠ΄Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ!).
2.Оно Ρ‚Π°ΠΊΠΈ ΠΌΠ°Π»ΠΎ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½ΠΎΠ΅, Ρ‚Π°ΠΊ Π΅Ρ‰Π΅ ΠΈ ΠΏΠ»Π°Ρ‚Π½ΠΎΠ΅!

НасчСт Π‘++, Ρ‚ΠΎ Π½ΠΈ Π² ΠΊΠΎΠ΅ΠΌ случаС Π½Π΅ ΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡŽΠ·Π°Ρ‚ΡŒ Visual Studio ΠΈ всякиС извращСния Ρ‚ΠΈΠΏΠ° MFC, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΎΠ·Π³ вынСсСтС сСбС ΠΈ Π²ΠΎΠ·Π½Π΅Π½Π°Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΠ»ΡŽΡΡ‹, ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ‚Π°ΠΌ ΠΏΠΎ ΠΏΡ€Π°Π²Π΄Π΅ говоря Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅.

Π§Ρ‚ΠΎ остаСтся?
Nokia Qt, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ°ΠΊ Π½Π° C++ ΠΊΠΎΠ΄ΠΈΡ‚ΡŒ, Ρ‚Π°ΠΊ ΠΈ Π½Π° Π»ΡŽΠ±ΠΈΠΌΡ‹Ρ… ruby,python.
C# WPF, Ρ‚ΡƒΡ‚ ΡƒΠΆ Π·Π° мСня всС расскаТут.

ΠžΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ Π½Π΅ стоит внимания, ΠΈΠΌΡ…ΠΎ.

ΠžΡ‚Π²Π΅Ρ‚ написан

А ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ‡Π΅Ρ€Π΅Π· web нСльзя всё Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ? ΠšΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈ Π²Π΅Π·Π΄Π΅ доступно))

ΠžΡ‚Π²Π΅Ρ‚ написан

2010, Π² 04:31″> Π±ΠΎΠ»Π΅Π΅ Ρ‚Ρ€Ρ‘Ρ… Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄

Если Π½Π΅Ρ‚ ТСстких Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΏΠΎ ΠΏΡ€ΠΎΠΈΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Ρ‚ΠΎ я Π±Ρ‹ совСтовал WPF (ΠΈΠ»ΠΈ Silverlight Ссли Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΏΠΎΠΆΠ΅Ρ€Ρ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒΡŽ возмоТностСй Ρ€Π°Π΄ΠΈ макоси ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΠ· Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°).

C# Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΠΈ развиваСтся ΠΊΡƒΠ΄Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½Π΅Π΅ Ρ‡Π΅ΠΌ C++. Π₯отя ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π ΠΈΡ…Ρ‚Π΅Ρ€Π° со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ всС Ρ€Π°Π²Π½ΠΎ стоит, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ простыС ΠΈ Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½Ρ‹Π΅ куски ΠΊΠΎΠ΄Π° Π½Π° C# ΠΈΠ½ΠΎΠ³Π΄Π° ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‡ΡƒΠ΄ΠΎΠ²ΠΈΡ‰Π½ΠΎ нСэффСктивными.

ΠžΡ‚Π²Π΅Ρ‚ написан

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

Π›ΠΈΡ‡Π½ΠΎ ΠΌΠ½Π΅ слоТно ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ сСбС Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈ ΠΏΡ€ΠΎΡ‰Π΅ C# WinForms. Если Π·Π°Π΄Π°Ρ‡Π° стоит Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ «здСсь ΠΈ сСйчас», Ρ‚ΠΎ, imho, Π½Π°Π΄ΠΎ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ этот Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. Если ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° пСрспСктиву с Ρ†Π΅Π»ΡŒΡŽ Π½Π°ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Ρ‡Π΅ΠΌΡƒ-Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠΌΡƒ ΠΈ интСрСсному, я Π±Ρ‹ Π²Ρ‹Π±Ρ€Π°Π» WPF. Π‘ΠΎ стратСгичСской Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π½Π°Π²Π΅Ρ€Π½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ всСго ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ Javascript UI toolkit ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ всё Π½Π° web-интСрфСйсах.

ΠžΡ‚Π²Π΅Ρ‚ написан

Π±ΠΎΠ»Π΅Π΅ Ρ‚Ρ€Ρ‘Ρ… Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄

Если Π½ΡƒΠΆΠ½ΠΎ быстро Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ:
Во C# плюс WPF.

А Ссли врСмя для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΅ΡΡ‚ΡŒ, плюс ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ β€” Ρ‚ΠΎ ΠŸΠΈΡ‚ΠΎΠ½, Π»ΠΈΠ±ΠΎ Π ΡƒΠ±ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ)

ΠžΡ‚Π²Π΅Ρ‚ написан

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

Если Ρƒ вас стоит Π·Π°Π΄Π°Ρ‡Π° Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΊΡƒ, ΠΈ ΠΏΡ€ΠΈ это Π²Π°ΠΌ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅ ΠΈ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅ Ruby, Ρ‚ΠΎ я Π±Ρ‹ посовСтовал ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ IronRuby β€” это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Π·Π½Π°ΠΊΠΎΠΌΠΎΠΌ ΡƒΠΆΠ΅ Π²Π°ΠΌ языкС, Π½ΠΎ ΠΏΡ€ΠΈ этом ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с ΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ .

Net.

ΠžΡ‚Π²Π΅Ρ‚ написан

МоТно ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΡƒΡ‡ΠΈΡ‚ΡŒ Java, C# ΠΈΠ»ΠΈ C++, Π½ΠΎ это Π½Π° ΠΌΠΎΠΉ взгляд Π±ΡƒΠ΄Π΅Ρ‚ слишком Ρ‚Ρ€ΡƒΠ΄ΠΎΠ·Π°Ρ‚Ρ€Π°Ρ‚Π½ΠΎ для Ρ‚Π°ΠΊΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ.

ΠžΡ‚Π²Π΅Ρ‚ написан

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

Мой Π²Ρ‹Π±ΠΎΡ€: Nokia Qt. БСйчас этот Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΎΡ‡Π΅Π½ΡŒ сильно вырос ΠΈ позволяСт просто Π΄Π΅Π»Π°Ρ‚ΡŒ слоТныС Π²Π΅Ρ‰ΠΈ.

ΠžΡ‚Π²Π΅Ρ‚ написан

ΠŸΡ€ΠΎΡΡ‚ΠΎ интСрСсно, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²Ρ‹ Π½Π΅ рассматриваСтС Ρ‚ΠΎΡ‚ ΠΆΠ΅ Delphi ΠΊΠ°ΠΊ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚Π°? По ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ Π² тСкстС вопроса я Π½Π΅ нашСл прямых ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈΠΉ. ЕдинствСнноС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅, ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ. Но ΠΏΠΎΠ΄ Ρ‚Π΅ΠΌ ΠΆΠ΅ Linux нСслоТноя Π΄Π΅Π»ΡŒΡ„Π΅Π²Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΠ΄ Wine ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

ΠžΡ‚Π²Π΅Ρ‚ написан

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΡƒΠ»ΠΈΠΊ Ρ…Π²Π°Π»ΠΈΡ‚ своС Π±ΠΎΠ»ΠΎΡ‚ΠΎ πŸ™‚

Если Π½Π°Π΄ΠΎ быстро ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ framework. Π’ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ всС, Ссли Π΅Π³ΠΎ Π½Π°ΠΊΠΎΡ€ΠΌΠΈΡ‚ΡŒ Β«Ρ„Π°Π½Ρ‚ΠΎΠΉΒ». Π’ вашСм случаС qt, Π΄ΡƒΠΌΠ°ΡŽ, Π±ΡƒΠ΄Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΠΈΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ.

ΠžΡ‚Π²Π΅Ρ‚ написан

Π±ΠΎΠ»Π΅Π΅ Ρ‚Ρ€Ρ‘Ρ… Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

Delphi?
Java (SWT)?
dotNet (любой язык ΠΈΠ· сСмСйства, ΠΊΠ°ΠΊΠΎΠΉ Π±Π»ΠΈΠΆΠ΅)?

ΠžΡ‚Π²Π΅Ρ‚ написан

Зависит ΠΎΡ‚ Π·Π°Π΄Π°Ρ‡ΠΈ: Ссли Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ просто быстро Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ β€” Π½ΡƒΠΆΠ½ΠΎ Π²Π·ΡΡ‚ΡŒ Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΉ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π’Ρ‹ ΡƒΠΆΠ΅ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‚.Π΅. Π”Π΅Π»ΡŒΡ„ΠΈ. Если ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅, Ρ‚ΠΎ ΠŸΠΈΡ‚ΠΎΠ½, Π΄ΡƒΠΌΠ°ΡŽ, Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΏΠΎΠ»Π½Π΅ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ, Ρ‚.ΠΊ. Π½Π° Π½Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ дСсктопныС прилоТСния ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ ΠΊΠ°ΠΊ сСрвСрный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Ρ‚Π°ΡŒ, Ρ‚.Π΅. ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½Π½Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ вСсьма ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ.

ΠžΡ‚Π²Π΅Ρ‚ написан

Всё зависит ΠΎΡ‚ Ρ†Π΅Π»Π΅ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ: Если Π½ΡƒΠΆΠ½ΠΎ Π΄Ρ‘ΡˆΠ΅Π²ΠΎ ΠΈ сСрдито, Ρ‚ΠΎ
ΠŸΠΈΡΠ°Ρ‚ΡŒ стоит Π½Π° Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ всСго знаСшь для Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ быстрСС всСго ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΡƒΡ‡ΠΈΡ‚ΡŒ. Для Π²ΠΈΠ½Π΄Ρ‹ с установлСнным офисом β€” MS Access β€” всё Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅, ΠΏΡ€ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ ΠΊ SQL сСрвСру ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΊ Ρ„Π°ΠΉΠ»-сСрвСру, ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ» Π² Π²ΠΈΠ΄Π΅ прилоТСния для Access Runtime β€” Π±Π΅Π· установки самого АксСса.


Если Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ€Π°Π΄ΠΈ изучСния Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ, Ρ‚ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ большС платят ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ‡Π°Ρ‰Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ Π½Π° сайтах фрилансСров ΠΈ поиска Ρ€Π°Π±ΠΎΡ‚Ρ‹.

ΠžΡ‚Π²Π΅Ρ‚ написан

НС ΠΎΡ‡Π΅Π½ΡŒ Π΄Π°Π²Π½ΠΎ Π½Π΅Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Π» На Ρ‡Π΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΊΡƒ?

ΠžΡ‚Π²Π΅Ρ‚ написан

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ

Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ GUI / Π₯Π°Π±Ρ€

ЗдравствуйтС! МСня Π·ΠΎΠ²ΡƒΡ‚ Π₯Π°Π»ΠΈΡ‚ΠΎΠ² ΠšΠΈΡ€ΠΈΠ»Π», я аспирант ΠΈΠ· ΠœΠ“Π£Π”Π’ (Московский государствСнный унивСрситСт Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ (ΠœΠ“Π£Π”Π’) ). Π’ ΠΌΠΎΠ΅ΠΉ диссСртации Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π·Π°Π΄Π°Ρ‡Π° ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ процСсс создания интСрфСйса для локального ΠΈ Π²Π΅Π±-прилоТСния ΠΈ Π² ΠΈΡ‚ΠΎΠ³Π΅ получился сабТ.

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π’ настоящСС врСмя любая соврСмСнная мониторинговая систСма Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС (ПО) для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, запуск этого ПО ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы (ОБ), Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ своих случаСв ОБ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Microsoft. Однако сСйчас Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ тСндСнция использования кроссплатформСнных срСдств для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ этого появляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ запуска Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ОБ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ОБ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² связи с Π±ΡƒΡ€Π½Ρ‹ΠΌ распространСниСм ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° популярным Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО стала Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ Π²Π΅Π±-сСрвисов. Π’Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ являСтся ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊ клиСнтской ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ (ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ). ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ использования ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΎΠ²ΠΎΠΉ систСмы. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ привязан ΠΊ мСсту располоТСния Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ части ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΎΠ²ΠΎΠΉ систСмы ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ ΠΈΠ· любой Ρ‚ΠΎΡ‡ΠΊΠΈ ΠΌΠΈΡ€Π°, Π³Π΄Π΅ Π΅ΡΡ‚ΡŒ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΠΎΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-соСдинСниС.

Π’Π°ΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ стСпСни отличаСтся ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ клиСнтских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ это Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ создаёт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π’ частности, это ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° создания ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (GUI). Π§Ρ‚ΠΎΠ±Ρ‹ клиСнтскоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Π΅Π΄ΠΈΠ½ΠΎΠΌ графичСском стилС, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΡ‚ΡŒ достаточно усилий ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ интСрфСйса клиСнтского прилоТСния, Ρ‚Π°ΠΊ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ интСрфСйса Π²Π΅Π±-прилоТСния. Π’ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ счётС Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° усилий ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, интСрфСйс ΠΊΠ°ΠΊΠΎΠ³ΠΎ прилоТСния Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠΉ ΡΡ‚ΠΈΠ»ΡŒ.

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ способы построСния интСрфСйсов

Рассмотрим Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярныС Π² настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ способы построСния интСрфСйсов клиСнтских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° языкС C++, ΠΊΠ°ΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΌ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО, для ОБ Microsoft Windows (MS Windows) ΠΈ ОБ Linux. Π“Π»Π°Π²Π½Ρ‹ΠΌ срСдством Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО для MS Windows являСтся MS Visual Studio [1]. Π­Ρ‚Π° интСгрированная срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (IDE) позволяСт Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ПО Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках программирования, Π½ΠΎ основными языками, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΡΠ²Π»ΡΡŽΡ‚ΡΡ C++ ΠΈ C#. Для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ интСрфСйса прилоТСния ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π΄Π²Π° основных срСдства β€” Windows Forms (WinForms) ΠΈ Windows Presentation Foundation (WPF). Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для MS Windows Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° с использованиСм WinForms, ΠΎΠ΄Π½Π°ΠΊΠΎ с появлСниСм Π±ΠΎΠ»Π΅Π΅ соврСмСнных вСрсий ОБ (MS Windows 7, 8), систСма WPF становится Π±ΠΎΠ»Π΅Π΅ популярной. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, послСдниС вСрсии MS Visual Studio ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ язык Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ HTML5 для построСния интСрфСйсов, Π±Π»ΠΈΠ·ΠΊΠΈΡ… ΠΏΠΎ ΡΡ‚ΠΈΠ»ΡŽ ΠΊ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ Π²Π΅Π±-прилоТСниям. Однако стоит Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ коммСрчСская лицСнзия MS Visual Studio являСтся ΠΏΠ»Π°Ρ‚Π½ΠΎΠΉ, ΠΊΠ°ΠΊ ΠΈ лицСнзия MS Windows, Ρ‡Ρ‚ΠΎ нСсомнСнно являСтся нСдостатком для Π½ΠΈΠ·ΠΊΠΎΠ±ΡŽΠ΄ΠΆΠ΅Ρ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ….

Если Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ Π½ΠΈΠ·ΠΊΠΎΠ±ΡŽΠ΄ΠΆΠ΅Ρ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, Ρ‚ΠΎ Ρ‚ΡƒΡ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ подходящим Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ являСтся ОБ Linux. Помимо Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ дистрибутивов этой ОБ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ бСсплатными, Π² Ρ‚ΠΎΠΌ числС ΠΈ для коммСрчСского использования, Ρ‚Π°ΠΊΠΆΠ΅ имССтся ряд бСсплатных срСдств для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ качСствСнного ПО для ОБ Linux. Π‘Π°ΠΌΡ‹ΠΌ распространённым срСдством для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО Π½Π° языкС Π‘++ являСтся кроссплатформСнный инструмСнтарий Qt [2]. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Qt позволяСт Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ прилоТСния Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ОБ Linux, Π½ΠΎ ΠΈ для MS Windows, Mac OS X, Android ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… UNIX-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ОБ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Qt ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ ΠΊΠ°ΠΊ Π±Π΅ΡΠΏΠ»Π°Ρ‚Π½ΡƒΡŽ для коммСрчСского использования, Ρ‚Π°ΠΊ ΠΈ ΠΏΠ»Π°Ρ‚Π½ΡƒΡŽ Π»ΠΈΡ†Π΅Π½Π·ΠΈΡŽ с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ возмоТностями. Но исходя ΠΈΠ· соврСмСнной ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого инструмСнтария, бСсплатной Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΈ оказываСтся большС Ρ‡Π΅ΠΌ достаточно.

Если ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ аналогию с MS Visual Studio, Ρ‚ΠΎ Π² Qt ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ IDE Qt Creator. Π—Π΄Π΅ΡΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²ΠΎΠΉ WinForms ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ (Qt Widgets), Π° Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° для WPF β€” Qt Quick. Π’Π°ΠΊΠΆΠ΅ Π² Qt Creator имССтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания интСрфСйсов Π½Π° основС HTML5. Но Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ интСрСсным ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ инструмСнтария являСтся встраиваСмый Π²Π΅Π±-Π΄Π²ΠΈΠΆΠΎΠΊ WebKit, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»Π΅ΠΆΠΈΡ‚ Π² основС всСх соврСмСнных Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ΠΎΠ². ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ имССтся ΠΈ Π² MS Visual Studio, Π½ΠΎ ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ ряд ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ, ΠΈ Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ нас большС ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‚ Π½ΠΈΠ·ΠΊΠΎΠ±ΡŽΠ΄ΠΆΠ΅Ρ‚Π½Ρ‹Π΅ срСдства, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ ΠΈΠ·Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΈ создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°. Π’Π΅Π±-Π΄Π²ΠΈΠΆΠΎΠΊ β€” это ядро Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, ΠΎΠ½ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ отобраТСния Π²Π΅Π±-страниц. ΠœΠΎΠ΄ΡƒΠ»ΡŒ Qt WebKit позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ интСрфСйс клиСнтского прилоТСния с использованиСм Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ интСрфСйсов Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’ основС создания интСрфСйса Π²Π΅Π±-прилоТСния Π»Π΅ΠΆΠΈΡ‚ ΡƒΡΡ‚ΠΎΡΠ²ΡˆΠΈΠΉΡΡ стСк Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. Он Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ язык Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ HTML (HTML 4, 5), каскадныС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ стилСй (CSS 2, 3) ΠΈ скриптовый язык JavaScript с Π±ΠΎΠ³Π°Ρ‚Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ (каркасов). ΠžΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ внимания заслуТиваСт Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ появлСния Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… каркасов для языка JavaScript ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ растёт, Π° это Π΄Π΅Π»Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ, насыщСнных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π±ΠΎΠ»Π΅Π΅ быстрой ΠΈ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠΉ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ создания ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ GUI Π»Π΅ΠΆΠΈΡ‚ Π½Π° повСрхности, Π½ΠΎ это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд.

Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ способ: Qt WebKit + Qt-костыли

Рассмотрим Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ способ создания ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ GUI с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ модуля Qt WebKit Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ модуля Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… систСмы акустичСского ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… кандидатской диссСртационной Ρ€Π°Π±ΠΎΡ‚Ρ‹ [3]. Под систСмой акустичСского ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° подразумСваСтся систСма, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π°Ρ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΡƒΡŽ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΡƒΡŽ части. Аппаратная Ρ‡Π°ΡΡ‚ΡŒ систСмы состоит ΠΈΠ· сСнсорной сСти акустичСских Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ², Π΄Π°Π½Π½Ρ‹Π΅ с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Π»ΠΈΠ±ΠΎ интСрфСйсу (UART, IEEE 802.X ΠΈ Π΄Ρ€.) Π½Π° ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ (ПК). ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ состоит ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… ΠΊΠ°ΠΊ Π½Π° локальном ПК (клиСнтскоС ПО), Ρ‚Π°ΠΊ ΠΈ Π½Π° ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠΌ сСрвСрС (сСрвСрноС ПО).

Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ использованиС мСТпроцСссного


Рис. 1. Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ GUI

взаимодСйствия ΠΏΠΎ срСдствам встроСнного ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Qt. Π—Π΄Π΅ΡΡŒ подразумСваСтся взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ основной Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ клиСнтского прилоТСния, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΡ‘Π½Π½ΠΎΠΉ Π½Π° рис.1 ΠΊΠ°ΠΊ ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ GUI-элСмСнтом. Одним ΠΈΠ· нСдостатков Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ΄ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ GUI Π½Π° языкС JavaScript Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ спСцифичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для клиСнтского Qt-прилоТСния. Для сСрвСрного прилоТСния, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π΅Π³ΠΎ Π·Π° GUI, Π½ΡƒΠΆΠ΅Π½ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ, спСцифичный для сСрвСрной Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠ΄. НапримСр, Π² случаС использования PHP-скрипта для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ основной Π»ΠΎΠ³ΠΈΠΊΠΈ сСрвСрного прилоТСния, понадобится рСализация мСТпроцСссного взаимодСйствия с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ (AJAX ΠΈΠ»ΠΈ WebSocket). ΠžΡ‚ΡΡŽΠ΄Π° слСдуСт Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ нСдостаток, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ использованиС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ языка программирования для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ основной Π»ΠΎΠ³ΠΈΠΊΠΈ сСрвСрного прилоТСния ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° мСТпроцСссного взаимодСйствия.

Π‘ΠΎΠ»Π΅Π΅ интСрСсный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄: Qt WebKit + WebSocket

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этих ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ прСдлагаСтся Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, основанный Π½Π° использования упомянутой Π²Ρ‹ΡˆΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ WebSocket. Π‘ΡƒΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ мСТпроцСссного взаимодСйствия ΠΌΠ΅ΠΆΠ΄Ρƒ основной Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ прилоТСния ΠΈ GUI, ΠΊΠ°ΠΊ Π½Π° клиСнтской сторонС, Ρ‚Π°ΠΊ ΠΈ Π½Π° сСрвСрной. Π’ этом случаС появляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования JavaScript ΠΊΠΎΠ΄Π° для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ для ΠΎΠ±Π΅ΠΈΡ… сторон GUI.


Рис. 2. Новый ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ GUI

На рис. 2. Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ для мСТпроцСссного взаимодСйствия, ΠΊΠ°ΠΊ для клиСнтской, Ρ‚Π°ΠΊ ΠΈ для сСрвСрной части ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ тСхнология WebSocket. Π’ΠΎ Π΅ΡΡ‚ΡŒ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ ΠΎΠ΄ΠΈΠ½ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ JavaScript ΠΊΠΎΠ΄ для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’ этом случаС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ условиСм являСтся сСрвСрноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, основная Π»ΠΎΠ³ΠΈΠΊΠ° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Qt, Π½Π° Π½Π΅ совсСм ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎΠΌ для Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², языкС C++. Π‘ ΠΎΠ΄Π½ΠΎΠΉ стороны Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ сСрвСрного прилоТСния услоТняСт Π·Π°Π΄Π°Ρ‡Ρƒ для узкоспСциализированного Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Но с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ части ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π°ΠΌ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ врСмя Π½Π° Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΏΠΎ смыслу Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках. Π’Π°ΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½ΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ для использования Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ WebSocket Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, которая имССтся Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ Π² свободном доступС ΠΈΠ»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΠ΅ вСрсии Qt.


Рис. 3. Π›ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ (справа) ΠΈ сСрвСрноС (слСва) прилоТСния, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ Π½Π° ОБ Ubuntu 14. 04

На рис. 3 ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° создания ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ GUI для ОБ Ubuntu 14.04. Как Π²ΠΈΠ΄Π½ΠΎ Π½Π° рисункС, Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ интСрфСйс, ΠΊΠ°ΠΊ для локального прилоТСния, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ Π² качСствС исполняСмого Ρ„Π°ΠΉΠ»Π° ОБ, Ρ‚Π°ΠΊ ΠΈ для сСрвСрного прилоТСния, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ Π² соврСмСнном Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅. Π’Π°ΠΊ ΠΊΠ°ΠΊ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ кроссплатформСнныС инструмСнты, это позволяСт Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ простой пСрСносимости ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ОБ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ.

Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

1. Qt Documentation [Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ рСсурс]. Π Π΅ΠΆΠΈΠΌ доступа: qt-project.org/doc
2. Visual Studio Library [Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ рСсурс]. Π Π΅ΠΆΠΈΠΌ доступа: msdn.microsoft.com/en-us/library/vstudio
3. ΠœΠΎΠ»ΠΎΠ΄Ρ‹Π΅ ΡƒΡ‡Ρ‘Π½Ρ‹Π΅ – Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ Ρ‚Π΅ΠΊΡΡ‚ΠΈΠ»ΡŒΠ½ΠΎ-ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠ³ΠΎ кластСра (ПОИБК β€” 2014): сборник ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² мСТвузовской Π½Π°ΡƒΡ‡Π½ΠΎ-тСхничСской ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ аспирантов ΠΈ студСнтов с ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½Ρ‹ΠΌ участиСм. Π§. 2. – Иваново: Иванов. гос. ΠΏΠΎΠ»ΠΈΡ‚Π΅Ρ…Π½. Π£Π½-Ρ‚, 2014. β€” Π‘. 25 [Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ рСсурс]. Π Π΅ΠΆΠΈΠΌ доступа: ti.ivgpu.com/poisk/file/part_2.pdf

P.S. ЕдинствСнноС, Ρ‡Ρ‚ΠΎ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ бросаСтся Π² Π³Π»Π°Π·Π° β€” это Ρ€Π°Π·Π½Ρ‹Π΅ ΡˆΡ€ΠΈΡ„Ρ‚Ρ‹, Π½ΠΎ ΠΌΠ½Π΅, чСстно говоря, Ρ‚ΠΎΠ³Π΄Π° Π±Ρ‹Π»ΠΎ Π½Π΅ Π΄ΠΎ Π½ΠΈΡ….

P.P.S. МоТно Π»ΠΈ Π·Π°ΠΏΠ°Ρ‚Π΅Π½Ρ‚ΠΎΠ²Π°Ρ‚ΡŒ этот способ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π΅ Π±Ρ‹Π»ΠΎ Ρ‡Π΅ΠΌ ΠΊΠΎΠ·Ρ‹Ρ€Π½ΡƒΡ‚ΡŒ ΠΊΡ€ΠΎΠΌΠ΅ ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° ΠΎ рСгистрации ПО?

Запуск ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ графичСского ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Linux с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ WSL

  • Π‘Ρ‚Π°Ρ‚ΡŒΡ
  • Π§Ρ‚Π΅Π½ΠΈΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 3Β ΠΌΠΈΠ½

подсистСма Windows для Linux (WSL) Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ запуск ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ графичСского ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Linux (X11 ΠΈ Wayland) Π² Windows Π² ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ интСрфСйсС Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола.

WSL 2 позволяСт прилоТСниям графичСского интСрфСйса Linux Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ сСбя собствСнными ΠΈ СстСствСнными для использования Π² Windows.

  • Запуск ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Linux ΠΈΠ· мСню «ΠŸΡƒΡΠΊ» Windows
  • Π—Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Linux Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Π·Π°Π΄Π°Ρ‡ Windows
  • ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ прилоТСниями Linux ΠΈ Windows с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ alt-tab
  • Π’Ρ‹Ρ€Π΅Π·Π°Ρ‚ΡŒ ΠΈ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² прилоТСниях Windows ΠΈ Linux

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ прилоТСния Windows ΠΈ Linux Π² Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс для эффСктивного Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола.

Установка ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ графичСского ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Linux

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ трСбования

  • Для доступа ΠΊ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ потрСбуСтся Windows 11 сборкС 22000 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½Π΅ΠΉ вСрсии.

  • УстановлСнный Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ для VGPU

    Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ прилоТСния графичСского ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Linux, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ сначала ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ вашСй систСмС Π½ΠΈΠΆΠ΅. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ GPU (vGPU), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ прСимущСствами Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ ускорСния отрисовки OpenGL.

    • Intel Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ GPU для WSL
    • AMD Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ GPU для WSL
    • NVIDIA Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ GPU для WSL

Новая установка β€” Π½Π΅Ρ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ установки WSL

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для запуска подсистСмы Windows для Linux (WSL), ввСдя эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² PowerShell ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ администратора ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС Windows, Π° Π·Π°Ρ‚Π΅ΠΌ пСрСзапустив ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€.

wsl --install

ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° установка продолТится, ΠΈ Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ ввСсти имя ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ. Π­Ρ‚ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ваши ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Linux для дистрибутива Ubuntu.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ использованию ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ графичСского ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Linux Π² WSL!

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΎΠ± установкС WSL.

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ установка WSL

Если Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΡƒΠΆΠ΅ установлСн WSL, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄ΠΎ послСднСй вСрсии, которая Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ графичСского ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Linux, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ обновлСния ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки с ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½Ρ‹ΠΌΠΈ привилСгиями.

  1. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ «ΠŸΡƒΡΠΊ», Π²Π²Π΅Π΄ΠΈΡ‚Π΅ PowerShell, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Windows PowerShell ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ «Π—апуск ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ администратора«.

  2. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ обновлСния WSL:

    wsl --update
    
  3. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ вступило Π² силу, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ WSL. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ WSL, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² PowerShell.

    wsl --shutdown
    

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ графичСского ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Linux ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с WSL 2 ΠΈ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с дистрибутивом Linux, настроСнным для WSL 1. Π£Π·Π½Π°ΠΉΡ‚Π΅ , ΠΊΠ°ΠΊ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ распрСдСлСниС с WSL 1 Π½Π° WSL 2.

Запуск ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с графичСским ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом Linux

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ эти популярныС прилоТСния Linux, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ· Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° Linux. Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ дистрибутив, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΡ‚ Ubuntu, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ диспСтчСр ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΡ‚ apt. ПослС установки прилоТСния Linux Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² мСню «ΠŸΡƒΡΠΊ » ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ дистрибутива. НапримСр: Ubuntu -> Microsoft Edge.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ графичСского ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса Π² WSL Π½Π΅ обСспСчиваСт ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ интСрфСйс Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ классичСский ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Windows, поэтому установка срСдств ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π½Π° Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹, ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ WSLg Π½Π° GitHub.

ОбновлСниС ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² дистрибутивС

sudo apt update

Установка Gedit

Gedit β€” это тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² классичСской срСдС JSON.

sudo apt install gedit -y

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» bashrc Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅, Π²Π²Π΅Π΄ΠΈΡ‚Π΅: gedit ~/.bashrc

Установка GIMP

GIMP β€” это бСсплатный ΠΈ растровый графичСский Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ рСдактирования ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, рисования свободной Ρ„ΠΎΡ€ΠΌΡ‹, пСрСкодирования ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π±ΠΎΠ»Π΅Π΅ спСциализированными Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ.

sudo apt install gimp -y

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, Π²Π²Π΅Π΄ΠΈΡ‚Π΅: gimp

Установка Nautilus

Nautilus, Ρ‚Π°ΠΊΠΆΠ΅ извСстный ΠΊΠ°ΠΊ ЀАЙЛЫ GNOME, являСтся диспСтчСром Ρ„Π°ΠΉΠ»ΠΎΠ² для Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола GPU. (Аналогично Windows ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊ).

sudo apt install nautilus -y

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, Π²Π²Π΅Π΄ΠΈΡ‚Π΅: nautilus

Установка VLC

VLC β€” это бСсплатный ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΊΠΎΠ΄ кроссплатформСнный ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠΈΠ³Ρ€Ρ‹Π²Π°Ρ‚Π΅Π»ΡŒ ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, которая воспроизводит Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ².

sudo apt install vlc -y

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, Π²Π²Π΅Π΄ΠΈΡ‚Π΅: vlc

Установка ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ X11

X11 β€” это систСма ΠΎΠΊΠΎΠ½ Linux, ΠΈ это Ρ€Π°Π·Π½ΠΎΠ΅ сСмСйство ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ с Π½ΠΈΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ xclock, xcalc calculator, xclipboard для вырСзания ΠΈ вставки, xev для тСстирования событий ΠΈ Ρ‚. Π΄. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² x.org Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ .

sudo apt install x11-apps -y

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ имя срСдства, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

  • xcalc, xclock, xeyes

Установка Google Chrome для Linux

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Google Chrome для Linux, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия.

  1. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Π² ΠΏΠ°ΠΏΠΊΡƒ temp: cd /tmp
  2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ wget для скачивания: sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
  3. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ: sudo dpkg -i google-chrome-stable_current_amd64.deb
  4. Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π°: sudo apt install --fix-broken -y
  5. НастройтС ΠΏΠ°ΠΊΠ΅Ρ‚: sudo dpkg -i google-chrome-stable_current_amd64.deb

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, Π²Π²Π΅Π΄ΠΈΡ‚Π΅: google-chrome

Установка Microsoft Teams для Linux

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Microsoft Teams для Linux, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

  1. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Π² ΠΏΠ°ΠΏΠΊΡƒ temp: cd /tmp
  2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ curl для скачивания ΠΏΠ°ΠΊΠ΅Ρ‚Π°: sudo curl -L -o ". /teams.deb" "https://teams.microsoft.com/downloads/desktopurl?env=production&plat=linux&arch=x64&download=true&linuxArchiveType=deb"
  3. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ apt для установки: sudo apt install ./teams.deb -y

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, Π²Π²Π΅Π΄ΠΈΡ‚Π΅: teams

Установка Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Microsoft Edge для Linux

БвСдСния ΠΎΠ± установкС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° Microsoft Edge для Linux с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π½Π° сайтС ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΡ†Π΅Π½ΠΊΠΈ Edge. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ » ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ инструкции» Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ установки ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π½Π° страницС.

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ, Π²Π²Π΅Π΄ΠΈΡ‚Π΅: microsoft-edge

УстранСниС Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ

Если Ρƒ вас Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с запуском ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ графичСского ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, сначала ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с этим руководством: диагностика ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с Ρ‚ΠΈΠΏΠΎΠΌ «Π½Π΅ удаСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅» с WSLg

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ GUI прилоТСния — morfizm β€” LiveJournal

Β 


Jul. 28th, 2016 02:29 am Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ GUI прилоТСния

Π― Π½Π΅ писал GUI ΡƒΠΆΠ΅ Ρ‚Ρ‹Ρ‰Ρƒ Π»Π΅Ρ‚, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, со Π²Ρ€Π΅ΠΌΡ‘Π½ Π”Π΅Π»ΡŒΡ„Π΅ΠΉ. Полазил посмотрСл, ΠΊΠ°ΠΊΠΈΠ΅ Π΅ΡΡ‚ΡŒ GUI-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ. Π’ частности, посмотрСл Qt ΠΈ JavaFX — Π΄Π°ΠΆΠ΅ Ссли Π½Π΅ ΠΏΡ€ΠΈΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ языку программирования, Π° просто ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π΅ΡΡ‚ΡŒ ΠΈΠ· популярного.

ВСкущая ситуация с Π³ΡƒΡ‘ΠΌ мСня ΠΎΠ³ΠΎΡ€Ρ‡Π°Π΅Ρ‚. На Π΄Π²ΠΎΡ€Π΅ 2016 Π³ΠΎΠ΄, Π° всё Π΅Ρ‰Ρ‘ Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΠΎ-настоящСму кроссплатформСнного, Π»Ρ‘Π³ΠΊΠΎΠ³ΠΎ Π² использовании ΠΈ выглядящСго Π½Π°Ρ‚ΠΈΠ²Π½ΠΎ. Если ΠΎΡ‚Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΊΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ, Ρ‚ΠΎ для Π²ΠΈΠ½Π΄Ρ‹ Π΅ΡΡ‚ΡŒ C#. Если ΠΎΡ‚Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ дСсктопы ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΊΠ»Π°ΡƒΠ΄ΠΎΠΌ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ сСрвСрным бэкэндом, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΡƒΡ‡Π° ΠΎΡ‚Π»Π°ΠΆΠ΅Π½Π½Ρ‹Ρ… Π²Π΅Π±-Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ (HTML, CSS, JavaScript). Всё ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ выглядит ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π³Π΅ΠΌΠΎΡ€Ρ€ΠΎΠ΅ΠΌ.

А ΠΌΠ½Π΅ Π±Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π½Π°Π²Π°ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΊΠΈ ΠΏΠΎΠ΄ Π’ΠΈΠ½Π΄Ρƒ, Π½ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡ‚ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Чисто для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ конструктивнСй Ρ€Π°Π·ΠΌΡ‹ΡˆΠ»ΡΡ‚ΡŒ Π½Π° эту Ρ‚Π΅ΠΌΡƒ, рассмотрим ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΊΡƒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ (это Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ просто ΡƒΠΏΡ€ΠΎΡ‰Ρ‘Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ эта ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΊΠ° ΠΌΠ½Π΅ Π½Π΅ Π½ΡƒΠΆΠ½Π°). Π‘Π΅Ρ€Ρ‘ΡˆΡŒ Ρ„Π°ΠΉΠ», ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΊΠ° Π΅Π³ΠΎ, скаТСм, ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Π΄ΠΎ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈΠ»ΠΈ с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ качСством, ΡŽΠ·Π΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ куски ΠΈ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ…, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΆΠ°Ρ‚ΡŒ «ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ», ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΎΠ½ помСняСт настройки, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π΅ΠΌΡƒ Π½Π΅ понравился Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

ΠŸΡ€ΠΈΡˆΠ»Π° Π² Π³ΠΎΠ»ΠΎΠ²Ρƒ такая идСя: ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это ΠΊΠ°ΠΊ малСнький Π²Π΅Π±-сСрвСр. Доступ ΠΊ локальной Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС, ΠΊ тяТСловСсному ΠΊΠΎΠ΄Ρƒ ΠΏΠΎ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€Π΅Π²ΡŒΡŽΡˆΠΊΠΈ ΠΈ ΠΊ Π»ΡŽΠ±Ρ‹ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ клиСнтским Ρ„ΠΈΡ‡Π°ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· HTTP ΠΈΠ»ΠΈ TCP. БоотвСтствСнно, инсталлятор ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΊΠΈ прописываСт firewall rule, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ этот ΠΏΠΎΡ€Ρ‚ для localhost, ΡˆΠΎΡ€Ρ‚ΠΊΠ°Ρ‚ для запуска запускаСт сСрвСр + ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π²Π΅Π± страницу + ΠΏΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΡŽ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ посылаСт сСрвСру сигнал, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ€Π° ΡƒΠΌΠΈΡ€Π°Ρ‚ΡŒ. Или ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ посылал keep-alives, ΠΈ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Ρ‹ ΠΌΠΈΠ½ΡƒΡ‚ keep alives Π½Π΅ ΡΠ»Ρ‹ΡˆΠ½ΠΎ, сСрвСр Π΄Π΅Π»Π°Π΅Ρ‚ сСбС Ρ…Π°Ρ€Π°ΠΊΠΈΡ€ΠΈ.

ΠŸΠ»ΡŽΡΡ‹:
*) ΠšΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΡΡ‚ΡŒ. ΠšΡ€ΠΎΡΡΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹ΠΉ сСрвСр Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π° Ρ‡Ρ‘ΠΌ ΡƒΠ³ΠΎΠ΄Π½ΠΎ. Π’Π΅Π± сайт, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉΡΡ Π²ΠΎ всСх Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ…, я Ρ‚Π°ΠΊ понимаю, Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ большая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Ссли ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. Platform-specific ΠΊΠΎΠ΄ это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ настройка firewall Π² инсталляторС.
*) Лёгкая ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π° mobile Ссли ΡΠ΅Ρ€Π²Π΅Ρ€Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π³Π΄Π΅-Ρ‚ΠΎ Ρ…ΠΎΡΡ‚ΠΈΡ‚ΡŒ (cloud back-end вмСсто localhost/desktop back-end).
*) GUI Ρ…ΠΎΡ‚ΡŒ ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (browser-Ρ‚Π°ΠΊΠΈ), Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ достаточно ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹ΠΌ ΠΈ ΡƒΠ·Π½Π°Π²Π°Π΅ΠΌΡ‹ΠΌ. Π‘ Π²Π΅Π± страницами всС ΡƒΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

ΠœΠΈΠ½ΡƒΡΡ‹:
*) Browser это всё-Ρ‚Π°ΠΊΠΈ Π½Π΅Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ интСрфСйс. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π±ΡƒΠ΄Π΅Ρ‚ нСэстСтично.
*) Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ»Π³ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ. Как ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, сотни миллисСкунд ΠΏΠΎ горячСму ΠΈΠ»ΠΈ сСкунды ΠΏΠΎ Ρ…ΠΎΠ»ΠΎΠ΄Π½ΠΎΠΌΡƒ.
*) Π― Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½, насколько Π»Π΅Π³ΠΊΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ Web Π³ΡƒΠΉ. Π― этого ΠΎΡ‡Π΅Π½ΡŒ Π΄Π°Π²Π½ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π», Π½ΠΎ воспоминания со Π²Ρ€Π΅ΠΌΡ‘Π½ 2000 Π³ΠΎΠ΄Π° Ρƒ мСня нСрадостныС. Π₯ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ IDE, autocomplete, ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹ΠΉ Π΄Π΅Π±Π°Π³Π³Π΅Ρ€ ΠΈ всякиС Ρ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ классныС ΡˆΡ‚ΡƒΠΊΠΈ. Они Π΅ΡΡ‚ΡŒ?

Π’Π°ΡˆΠΈ мысли? Π•ΡΡ‚ΡŒ Π»ΠΈ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΅Ρ‰Ρ‘ ΠΏΡ€ΠΎΡ‰Π΅/ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ для соврСмСнных GUI ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ?

Tags: 1, polls questions and social games, software development

16 comments — Leave a comment

From:birdwatcher
Date:July 28th, 2016 10:40 am (UTC)
(Link)

А Ρ‡Π΅ΠΌ Qt Π½Π΅ понравился? По-ΠΌΠΎΠ΅ΠΌΡƒ, ΠΎΠ½ прСкрасСн.

From:lyuden
Date:July 29th, 2016 09:12 am (UTC)
(Link)

Π― Ρ€Π°Π±ΠΎΡ‚Π°Π» Π² основном с Π±ΠΈΠ½Π΄ΠΈΠ½Π³Π°ΠΌΠΈ ΠΊ ΠŸΠΈΡ‚ΠΎΠ½Ρƒ.

ИМΠ₯О. НСвСроятно слоТная ΠΈ Π³Π»ΡŽΡ‡Π½Π°Ρ Ρ…Ρ€Π΅Π½ΡŒ. ОсобСнно Ссли люди ΠΏΠΈΡˆΡƒΡ‚ Π½Π° сигналах, Π° Π½Π΅ Π½Π° модСлях. ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ цикличСский Π³Ρ€Π°Ρ„ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² — фигня. ΠžΡ‚Π»Π°Π΄ΠΊΠ° ? Какая ΠΎΡ‚Π»Π°Π΄ΠΊΠ°. QVariant, Π±Π»ΠΈΠ½, Π½Π΅Π½Π°Π²ΠΈΠΆΡƒ. Π˜Π½Π΄Π΅ΠΊΡΡ‹ Π² модСлях — я Π½Π΅ знаю ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π΅Ρ† ΠΈΡ… ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π».

Нативного Π²ΠΈΠ΄Π° Π½Π΅Ρ‚ Π½ΠΈ Π½Π° линуксС Π½ΠΈ Π½Π° Π²ΠΈΠ½Π΄Π΅. ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π²ΠΎΠΎΠ±Ρ‰Π΅ эпичСн. Ну Ρ‚.Π΅. Π΄Π° с нуля ΠΏΠΈΡΠ°Ρ‚ΡŒ дольшС. Но гСммороя всС Ρ€Π°Π²Π½ΠΎ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚.

Π’Π΅Π± Π² этом ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ ΠΊΡƒΠ΄Π° ΠΊΠ°ΠΊ Ρ€Π°Π·ΡƒΠΌΠ½Π΅Π΅ ΠΈ понятнСС.

From:dennyrolling
Date:July 28th, 2016 01:55 pm (UTC)
(Link)

debugging sucks testing rocks, Π½ΠΎ Ссли сильно Π½Π°Π΄ΠΎ Ρ‚ΠΎ Π² Ρ…Ρ€ΠΎΠΌΠ΅ всС сСйчас Π½ΠΎΡ€ΠΌ с Π΄Π΅Π±Π°Π³Π³ΠΈΠ½Π³ΠΎΠΌ.

From:ex_juan_gan
Date:July 28th, 2016 02:31 pm (UTC)
(Link)

Π£ΠΆΠ΅ Π΄Π°Π²Π½ΠΎ ΠΏΡ€ΠΈΡˆΠ΅Π» я ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ вСсь Π³ΡƒΠΉ Π½Π°Π΄ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° Π²Π΅Π±Π΅ (html, js), Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π° Π±Π°ΠΊΠ΅Π½Π΄Π΅. И Π΄Π°ΠΆΠ΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½ΡΡ‚Π°Π»Π»ΡΡ†ΠΈΡŽ Ρ€Π°Π·Π±ΠΈΠ²Π°Ρ‚ΡŒ Π½Π° эти Π΄Π²Π° кусочка.

Π’ΠΏΠ΅Ρ€Π²Ρ‹Π΅ это я ΡƒΠ²ΠΈΠ΄Π΅Π» Π² гугловском локальном поискС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Π²Ρ‹ΠΊΠ°Ρ‡Π΅Π½ этак Π»Π΅Ρ‚ 10 Π½Π°Π·Π°Π΄, ΠΈ с Ρ‚Π΅Ρ… ΠΏΠΎΡ€ Π·Π°Π±Ρ‹Ρ‚. Π’Π°ΠΊ с Ρ‚Π΅Ρ… ΠΏΠΎΡ€ сам ΠΈ дСлаю.

From:_m_e_
Date:July 28th, 2016 02:57 pm (UTC)
(Link)

Знакомая Π΄ΠΈΠ»Π΅ΠΌΠΌΠ°. Π― Ρ‚Π°ΠΊ Π² 2000-ΠΎΠΌ написал Π³ΡƒΠΉ Π½Π° HTML Π² МБ.
Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΡˆΠ΅Π» я Ρ‚ΠΎΠ»ΡŒΠΊΠΎ-Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² МБ. Как ΠΏΠΈΡΠ°Ρ‚ΡŒ Π³ΡƒΠΉ Π·Π°Π±Ρ‹Π».
МнС Π΄Π°ΡŽΡ‚ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΊΡƒ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ, ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ Ρ‡ΡƒΡ‚ΡŒ-Ρ‡ΡƒΡ‚ΡŒ гуя.
ΠŸΠΈΡˆΡƒ Π½Π° Π‘++, Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ ΠΊΠ°ΠΊ COM, дСлаю Π³ΡƒΠΉ Π½Π° HTA (это Ρƒ МБ ΡΡ‡ΠΈΡ‚Π°Π»ΠΎΡΡŒ HTML Apps, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ сСрвСра).

БСйчас каТСтся популярно Π±Π°Π½Π΄Π»ΠΈΡ‚ΡŒ Π₯Ρ€ΠΎΠΌΠΈΡƒΠΌ с сСрвСром Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, для этого ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Ρ‚ΡƒΠ»Ρ‹ Π±Ρ‹Π»ΠΈ.

From:andreyvo
Date:July 28th, 2016 03:30 pm (UTC)
(Link)

Π‘ UI/UX Π±Π΅Π΄Π°, Π½ΠΈΠΊΡ‚ΠΎ Π΅Π³ΠΎ Π½Π΅ ΡƒΠΌΠ΅Π» ΠΈ Π½Π΅ ΡƒΠΌΠ΅Π΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ. А Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½ΠΈΠΊΠ°Ρ… Π²ΠΎΠΎΠ±Ρ‰Π΅ аховая ситуация. ΠΠ˜Π§Π•Π“Πž Π₯ΠžΠ ΠžΠ¨Π•Π“Πž НЕВ НУ Π’ΠžΠžΠ‘Π©Π•. ОсобСнно Ссли ΠΌΡƒΡ‚ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ кроссплатформСнноС, ΠΈΠ³Ρ€Ρ‹ Ρ‚Π°ΠΌ Ρ‚Ρ‹Ρ€Ρ‹ΠΏΡ‹Ρ€Ρ‹. ..

Π”Π°Π²Π½Ρ‹ΠΌ-Π΄Π°Π²Π½ΠΎ, Π² Π³ΠΎΠ΄Ρƒ Π³Π΄Π΅-Ρ‚ΠΎ 2000-ΠΎΠΌ Π±Ρ‹Π» Ρƒ нас ΠΎΠ΄ΠΈΠ½ Π²Π΅Π±-ΠΌΠ°Π³Π°Π·ΠΈΠ½ Π½Π° PHP. Π—Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊΡƒ срочно понадобилась ΠΎΡ„Ρ„Π»Π°ΠΉΠ½ вСрсия, ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π½Π° CD, для ΠΏΠΎΠ½Ρ‚ΠΎΠ² ΠΈ ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΠΉ. Бваял Π·Π° нСдСлю Π½Π° Delphi, вСсь Π΄ΠΈΠ·Π°ΠΉΠ½ HTML-Π½Ρ‹ΠΉ показывался Ρ‡Π΅Ρ€Π΅Π· Ρ…ΠΈΡ‚Ρ€ΠΎΠ²Ρ‹Π΅Π±@Π½Ρ‹ΠΉ ActiveX Π² ΠΎΠΊΠ½Π΅ IE4. MySQL Π±Π°Π·Ρƒ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π½ΡƒΠ»ΠΈ Π² .dbf-ΠΊΠΈ, ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΌΠ°ΠΊΠ°Ρ€ΠΎΠΌ Π΄Π°ΠΆΠ΅ SQL запросы Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ, практичСски Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΈ Π³Π»Π°Π²Π½ΠΎΠ΅ вСсь этот Π³Π»ΡŽΠΊΠΎΠ΄Ρ€ΠΎΠΌ Π΄Π°ΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π», ΠΏΡ€ΠΈΡ‡Π΅ΠΌ с сюдюка.

From:ermouth
Date:July 28th, 2016 06:51 pm (UTC)
(Link)

Π”Π΅Π»Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ HTML5 + js, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ http://electron.atom.io/

Какой ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для гуя – слоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Π½Π΅ зная Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Ρ‚Π²ΠΎΠΈΡ… скиллов/пристрастий.

From:sasha_gil
Date:July 29th, 2016 01:54 am (UTC)
(Link)

Π”Π°, я ΠΏΡ€ΠΎ Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½ Ρ‡ΠΈΡ‚Π°Π» Π½Π° Π₯Π°Π±Ρ€Π΅, Π΅Π³ΠΎ сравнивали с Π±ΠΎΠ»Π΅Π΅ старым Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° NW.js (node-webkit) https://habrahabr.ru/post/304574/, плюсов большС Π½Π°Π±Ρ€Π°Π» Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½.

МоТно Π΅Ρ‰Ρ‘ Ρ‚Π°ΠΊΠΎΠΉ Ρ„ΠΈΠ½Ρ‚ Π½Π° Ρ‚Π΅ΠΌΡƒ «Π²Ρ‹Π³Π»ΡΠ΄ΡΡ‰Π΅Π³ΠΎ Π½Π°Ρ‚ΠΈΠ²Π½ΠΎ» (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π±Π΅Π· HTML, JS управляСт ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ½ΠΎ-спСцифичным ΠΌΠ°Ρ€ΠΊΠ°ΠΏΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Π΄ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ для ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΠΌ iOS / Android / Windows Universal, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Windows 10): Π·Π°Π±ΠΈΡ‚ΡŒ Π½Π° «Π΄Π΅ΡΠΊΡ‚ΠΎΠΏΠΎΠ²ΠΎΡΡ‚ΡŒ» ΠΈ Π²Π·ΡΡ‚ΡŒ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ React Native ΠΈΠ»ΠΈ NativeScript. Под Windows 10 Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ Windows Store ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π― сСйчас ΡΠΌΠΎΡ‚Ρ€ΡŽ Π½Π° React Native, Ρƒ Π½Π΅Π³ΠΎ Π½Π΅Π΄Π°Π²Π½ΠΎ появилась интСграция с Windows. На NativeScript я Π΄ΡƒΠΌΠ°ΡŽ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅, сСйчас просто ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ», Ρ‡Ρ‚ΠΎ с Windows 10 интСграция Ρ‚ΠΎΠΆΠ΅ Π½Π΅Π΄Π°Π²Π½ΠΎ появилось.

Π”ΠΈΠΌΠ°, Ссли Ρ‚Ρ‹ это Ρ‡ΠΈΡ‚Π°Π΅ΡˆΡŒ — ΠΊΡ€ΠΎΠΌΠ΅ рассматриваСмой ΠΈΠ΄Π΅ΠΈ JS-прилоТСния ΠΈΠΌΠ΅ΠΉ Ρ‚Π°ΠΊ ΠΆΠ΅ Π² Π²ΠΈΠ΄Ρƒ Xamarin (кроссплатформСнный Π‘#), ΠΎΠ½ Π½Ρ‹Π½Ρ‡Π΅ бСсплатный extension ΠΊ Visual Studio 2015. Unity — Ρ‚ΠΎΠΆΠ΅ кроссплатформСнный C#, Π½ΠΎ это коммСрчСский ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ (ΠΈ я Π½Π΅ знаю, ΠΊΠ°ΠΊ Ρ‚Π°ΠΌ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΎΠ², это игровая ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ). Если всё-Ρ‚Π°ΠΊΠΈ Π²Ρ‹Π±Π΅Ρ€Π΅ΡˆΡŒ JS… Π― Π»ΠΈΡ‡Π½ΠΎ, Ссли Π±ΡƒΠ΄Ρƒ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π° JS, Π±ΡƒΠ΄Ρƒ с самого Π½Π°Ρ‡Π°Π»Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ TypeScript. Π£ NativeScript ΠΎΠ½ с самого Π½Π°Ρ‡Π°Π»Π° Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΡ€ΠΈΠΊΡ€ΡƒΡ‡Π΅Π½, Π½ΠΎ, ΠΏΠΎ ΠΈΠ΄Π΅Π΅, ΠΏΡ€ΠΈΠΊΡ€ΡƒΡ‚ΠΈΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ с компиляциСй Π² JS.

ΠšΠΎΡ€Ρ€Π΅ΠΊΡ†ΠΈΡ: я писал Π²Ρ‹ΡˆΠ΅ «Windows 10» ΠΊΠ°ΠΊ синоним «Universal Windows», ΠΎΠ΄Π½Π°ΠΊΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ «Universal Windows» прилоТСния для Windows Store появилась Π² Windows 8.1. Π­Ρ‚ΠΎ ΠΌΠ΅Π»ΠΎΡ‡ΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Windows-Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°ΠΌΠΈ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ (ΠΈ, вСроятно, ΠΎΠ½ΠΈ ΡƒΠΌΡ€ΡƒΡ‚, Π½ΠΎ Π΅Ρ‰Ρ‘ Π½Π΅ ΡƒΠΌΠ΅Ρ€Π»ΠΈ). Π”Π°, Π²ΠΎΡ‚ Ρ‚ΡƒΡ‚ https://www.nativescript.org/blog/nativescript-and-xamarin Π°Π²Ρ‚ΠΎΡ€Ρ‹ / хозяСва NativeScript ΡΡ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‚ Π΅Π³ΠΎ с Xamarin.

Edited at 2016-07-29 02:45 am (UTC)

From:_m_e_
Date:July 29th, 2016 08:00 am (UTC)
(Link)

спасибо Π·Π° Π»ΠΈΠ½ΠΊΠΈ, ΠΎΡ‡Π΅Π½ΡŒ интСрСсно!

From:sasha_gil
Date:July 29th, 2016 06:56 pm (UTC)
(Link)

Π­Ρ‚ΠΎ вприглядку Π² основном — Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ я установил ΠΈ пособирал Π² Ρ€Π°Π·Π½Ρ‹Ρ… конфигурациях React Native для Windows Store Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ³ΠΎ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΠΊΠ°. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ UI Π»ΠΎΠ³ΠΈΠΊΡƒ Π½Π° JS ΡƒΠ΄ΠΎΠ±Π½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΈΠΏΠ° быстрый REPL (Π½Ρƒ Ρ‚Ρ‹ сам ΠΏΡ€ΠΎ это написал Π²Ρ‹ΡˆΠ΅ ΠΏΠΎ ΠΎΠΏΡ‹Ρ‚Ρƒ 16-Π»Π΅Ρ‚Π½Π΅ΠΉ давности), Π½ΠΎ я этот язык Ρ‚Π°ΠΊ ΠΈ Π½Π΅ полюбил, хотя Π΄Π²Π° Π³ΠΎΠ΄Π° Π½Π° Π½Ρ‘ΠΌ писал. Он, ΠΏΡ€Π°Π²Π΄Π°, ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ΡΡ, ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π² IDE ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅Ρ‚ΡΡ Ρ‚ΠΎΠΆΠ΅. Если Ρ‚Ρ‹ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ интСрСсноС Π½Π°ΠΉΠ΄Ρ‘ΡˆΡŒ, Π΄Π°ΠΉ Π·Π½Π°Ρ‚ΡŒ! Π’ этой области «Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅» Π²Π΅Ρ‰ΠΈ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ довольно быстро.

From:ermouth
Date:July 29th, 2016 11:36 am (UTC)
(Link)

Насчёт TS/NS – ΠΏΠΎ-ΠΌΠΎΠ΅ΠΌΡƒ, Π²Ρ‹ зря ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ³Π°Π΅Ρ‚Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ сами Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ.

TS Π² ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, Π΄Π΅Π»Π°Π΅ΠΌΡ‹Ρ… Π² ΠΎΠ΄Π½ΠΎ Π»ΠΈΡ†ΠΎ – просто лишний слой. Β«Π’ Π³Π°ΠΌΠ°ΠΊΠ΅ ΠΈ скафандрС», Π΄Π°.

Насчёт NS – Ρ‚Π°ΠΌ всё грустно с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹ΠΌΠΈ Π³ΡƒΡ‘Π²Ρ‹ΠΌΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π°ΠΌΠΈ. Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» с ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ€ΠΈΠΊΠΎΠΌ? Π˜Π·Π²ΠΎΠ»ΡŒΡ‚Π΅ Π·Π°ΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ $199.

ΠΠ°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ с Π½ΠΈΡ… Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π΅ стóит.

From:sasha_gil
Date:July 29th, 2016 05:53 pm (UTC)
(Link)

ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π΅Π΅ ΠΏΡ€ΠΎ ΠΌΠΎΠΉ ΠΎΠΏΡ‹Ρ‚ с TS вСрсус JS. Π― писал Ρ‚Ρ€ΠΈ Π³ΠΎΠ΄Π° Π½Π°Π·Π°Π΄ Π½Π° JS Π² Visual Studio Π°ΠΏΠΏ для Windows Store срСднСго Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΏΡΡ‚ΡŒ ΠΈ чувствовал сСбя ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½ΠΎ, собирался ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° TS, Π½ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ закончился Ρ€Π°Π½ΡŒΡˆΠ΅. Π“ΠΎΠ΄Π° Π΄Π²Π° Π½Π°Π·Π°Π΄ ΠΏΠΎΠΌΠΎΠ³Π°Π» ΡˆΠΊΠΎΠ»ΡŒΠ½ΠΈΠΊΡƒ с малСньким ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΠΊΠΎΠΌ ΠΈ Ρ‚ΠΎΠΆΠ΅ почувствовал сСбя Π»Π΅Π³Ρ‡Π΅ с TS. Π‘ Ρ‚Π΅Ρ… ΠΏΠΎΡ€ JS обновился, ΠΈ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π΄Ρ€ΡƒΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΊ JS, Π½ΠΎ ΠΌΠ½Π΅ Π»ΠΈΡ‡Π½ΠΎ этот лишний слой ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Visual Studio Π±Ρ‹Π» Π½ΡƒΠΆΠ΅Π½. ΠŸΡ€Π°Π²Π΄Π°, я сСйчас Π½Π° C++ ΠΏΠΈΡˆΡƒ, ΠΌΠΎΡ‘ ΠΌΠ½Π΅Π½ΠΈΠ΅ нСумСстно ΠΈ нСобосновано. РасскаТитС ΠΏΠΎΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΏΡ€ΠΎ Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½, Π²Ρ‹ с Π½ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ / Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ?

From:ermouth
Date:July 29th, 2016 08:47 pm (UTC)
(Link)

> Π½ΠΎ ΠΌΠ½Π΅ Π»ΠΈΡ‡Π½ΠΎ этот лишний слой ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Visual Studio Π±Ρ‹Π» Π½ΡƒΠΆΠ΅Π½

Рискну ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»ΠΎ Π½Π΅ Π² VS, Π° Π² ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡ΠΊΠ΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ООП-стилС. ΠžΠ±Ρ‰Π΅ΠΏΡ€ΠΈΠ½ΡΡ‚ΠΎ считаСтся, Ρ‡Ρ‚ΠΎ ΠΌΠΈΡ€Π΅ JS Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ (Π·Π° Ρ€Π΅Π΄ΠΊΠΈΠΌΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ) всё Ρ‚Π°ΠΊΠΈ Π΄Π°Ρ‘Ρ‚ большС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ, Ρ‡Π΅ΠΌ прСимущСств.

Π‘ΠΊΡ€ΠΎΠΌΠ½ΠΎΠ΅ распространСниС TS, особСнно Ссли ΡƒΡ‡Π΅ΡΡ‚ΡŒ ΠΌΠΎΡ‰ΡŒ Π²Π΅Π½Π΄ΠΎΡ€Π° – Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ (хотя ΠΈ нСбСсспорный) Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ ограничСния ΡΠ΅Ρ€ΡŒΡ‘Π·Π½ΠΎ ΠΎΠ±Π΅ΡΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‚ ООП-ΡˆΠ½Ρ‹Π΅ плюшки.

> РасскаТитС ΠΏΠΎΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΏΡ€ΠΎ Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½, Π²Ρ‹ с Π½ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅

Π’ΡƒΡ‚ Π½Π°Π΄ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ nw.js ΠΈ Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½, ΠΏΠΎ-Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΌΡƒ Ρ‚ΠΎ, ΠΈ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ я посовСтовал Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½.

ΠœΡ‹ Π½Π΅ Π΄Π΅Π»Π°Π΅ΠΌ дСсктопныС/ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ прилоТСния Π½Π° Π·Π°ΠΊΠ°Π·, поэтому с Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½ΠΎΠΌ я Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π΄ΡƒΠΌΡ‡ΠΈΠ²ΠΎ баловался. Π‘ nw.js всё Ρ‡ΡƒΡ‚ΡŒ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Π΅Π΅, Π΅Π³ΠΎ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π² Π±ΠΎΠ΅Π²Ρ‹Ρ… условиях, Π½ΠΎ Π½Π΅ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‘Ρ€Ρ‚ΠΊΡƒ для изготовлСния стэндэлон-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’ΠΎ-Π΅ΡΡ‚ΡŒ, прилоТСния я с Π½ΠΈΠΌ Π΄Π΅Π»Π°Π», Π½ΠΎ Ρ‚ΠΎΠΆΠ΅ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π²Π΄ΡƒΠΌΡ‡ΠΈΠ²ΠΎΠ³ΠΎ Β«ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒΡΡΒ».

Π’ силу Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ я занимаюсь ΠΏΠΎ прСимущСству Π³ΡƒΠ΅ΠΌ ΠΈΠ»ΠΈ Ρ‚Π΅ΠΌ, Ρƒ Ρ‡Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ Π³ΡƒΠΉ ΠΈ ΠΎΠ½ Π²Π°ΠΆΠ΅Π½, я, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π» ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΉΡΡ ΠΊΠΎΠ΄ слоТных Π³ΡƒΡ‘Π²Ρ‹Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ. Π‘ Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½ΠΎΠΌ ΠΏΠΎΡ€ΠΎΠ³ Π²Ρ…ΠΎΠ΄Π° ΠΈΠ· Ρ‚ΠΎΡ‡ΠΊΠΈ Β«Π²ΠΎΡ‚ Ρƒ мСня Π΅ΡΡ‚ΡŒ html+js+css, сдСлай дСсктопноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Β» Ρ‡ΡƒΡ‚ΡŒ Π²Ρ‹ΡˆΠ΅, Ρ‡Π΅ΠΌ с nw.js. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, послС прохоТдСния ΠΏΠΎΡ€ΠΎΠ³Π° дальшС Ρ‚Π΅Π»ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ Ρ‚ΠΎΡ‡Π½ΠΎ мСньшС.

ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, сдСланных ΠΈΠ· Ρ‚Π°ΠΊΠΎΠΉ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ, ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ комфортная Π² ΠΎΠ±ΠΎΠΈΡ… случаях.

Π”ΠΈΠΌΠ°, скорСС всСго, Π±ΡƒΠ΄Π΅Ρ‚ Π² это всё ΠΏΠΎΠ³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ. Π§Ρ‚ΠΎ-Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ Β«Π²ΠΎΡ‚ Ρƒ мСня Π΅ΡΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΠ°, ΠΌΠ½Π΅ ΠΊ Π½Π΅ΠΉ Π½ΡƒΠΆΠ΅Π½ Π³ΡƒΠΉΒ» – ΠΎΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΏΡ€ΠΎ это ΠΏΠΈΡˆΠ΅Ρ‚. Π‘ Ρ‚Π°ΠΊΠΈΠΌΠΈ Π²Π²ΠΎΠ΄Π½Ρ‹ΠΌΠΈ ΠΈ ΠΏΠΎΡ€ΠΎΠ³ вхоТдСния Π² Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π½ΠΈΠΆΠ΅, Ρ‡Π΅ΠΌ Π² Π½ΠΎΠ΄-Π²Π΅Π±ΠΊΠΈΡ‚, ΠΏΡ€ΠΈ сохранСнии мéньшСго количСства Ρ‚Π΅Π»ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΉ overall.

From:sasha_gil
Date:July 30th, 2016 06:16 am (UTC)
(Link)

Π”Π°, это Π±Ρ‹Π» ООП-ΡΡ‚ΠΈΠ»ΡŒ — Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π² ΠΎΠ±ΠΎΠΈΡ… случаях ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π° Π΄ΠΈΠΊΡ‚ΠΎΠ²Π°Π»ΠΈ; Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Ρƒ мСня Π½Π΅Ρ‚ ΠΎΠΏΡ‹Ρ‚Π° программирования Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ стилС.

Бпасибо Π·Π° ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΡ€ΠΎ Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½ / nw.js! ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΡŽ Π½Π°ΠΉΡ‚ΠΈ врСмя / силы ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒΡΡ с Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½ΠΎΠΌ.

From:_winnie
Date:July 28th, 2016 07:07 pm (UTC)
(Link)

А послС ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ — Π½Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈΠΊΠ»Π΅ΠΈΡ‚ΡŒ вмСсто html-Ρ€Π΅Π½Π΄Π΅Ρ€Π° ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Ссли Ρ‚Π°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ сильно Π»ΡƒΡ‡ΡˆΠ΅ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (это смоТСт ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΄Π°ΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ).

From:lyuden
Date:July 29th, 2016 09:05 am (UTC)
(Link)

Π­Ρ‚Π° идСя мягко говоря Π½Π΅ Π½ΠΎΠ²Π°. Π― сСйчас Π»ΠΎΠ±Π±ΠΈΡ€ΡƒΡŽ пСрСписываниС нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с PyQt4 Π½Π° embedded Chrome + react.js + HTML

https://github.com/cztomczak/cefpython

Π’Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ всС Ρ€Π°Π²Π½ΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ интСрфСйс для Π²Π΅Π±Π°.

ВСбсСрвСр нСобязатСлСн, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· javascript Π½Π°Ρ‚ΠΈΠ²Π½ΠΎ.

IDE ΠΎΡ‚Π»Π°Π΄ΠΊΠ° ΠΈ тСстированиС для Π²Π΅Π±-интСрфСйса, Π½Π° Π³ΠΎΠ»ΠΎΠ²Ρƒ прСвосходят всС Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ GUI Π½Π΅ ΠΏΠΎΠ΄ javascript.

Β 

создаём простоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с PyQt ΠΈ Qt Designer

Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ своё знакомство с созданиСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с графичСским интСрфСйсом (GUI) Π½Π° Python. Π’ Π½Π΅ΠΉ ΠΌΡ‹ рассмотрим основы использования PyQt Π² связкС с Qt Designer. Π¨Π°Π³ Π·Π° шагом ΠΌΡ‹ создадим простоС Python GUI ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ содСрТимоС Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ.

Π§Ρ‚ΠΎ Π½Π°ΠΌ потрСбуСтся

Нам понадобятся PyQt ΠΈ Qt Designer, Π½Ρƒ ΠΈ Python, само собой.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ PyQt5 с Python 3, Π½ΠΎ особых Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ PyQt ΠΈ PySide ΠΈΠ»ΠΈ ΠΈΡ… вСрсиями для Python 2 Π½Π΅Ρ‚.

Windows:Β PyQt ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ здСсь. Π’ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π΅ с Π½ΠΈΠΌ ΠΈΠ΄Ρ‘Ρ‚ Qt Designer.

macOS:Β Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ PyQt с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Homebrew:

$ brew install pyqt5

Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ с Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ инструмСнтов Qt, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит Qt Designer, ΠΌΠΎΠΆΠ½ΠΎΒ ΠΏΠΎ этой ссылкС.

Linux: Всё Π½ΡƒΠΆΠ½ΠΎΠ΅, вСроятно, Π΅ΡΡ‚ΡŒ Π² рСпозиториях вашСго дистрибутива. Qt Designer ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈΠ· Π¦Π΅Π½Ρ‚Ρ€Π° ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ PyQt придётся ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π». Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ всё, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ понадобится, ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°ΠΊ:

# для Fedora:
$ sudo dnf install python3-qt5 qt-creator
# для Debian/Ubuntu:
$ sudo apt install python3-qt5 pyqt5-dev-tools qtcreator

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈ с приготовлСниями, ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡƒΡŽ строку/Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ pyuic5. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:

$ pyuic5
Error: one input ui-file must be specified

Если Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ сообщСниС, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π΅Ρ‚ ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π² Ρ‚Π°ΠΊΠΎΠΌ Ρ€ΠΎΠ΄Π΅, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π·Π°Π³ΡƒΠ³Π»ΠΈΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ для вашСй ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΈ вСрсии PyQt.

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Windows, Ρ‚ΠΎ, скорСС всСго, ΠΏΡƒΡ‚ΡŒΒ C:\Python36\Scripts (ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅Β 36Β Π½Π° Π²Π°ΡˆΡƒ Π²Π΅Ρ€ΡΠΈΡŽ Python) Π½Π΅ прописан Π² вашСм PATH. ЗаглянитС Π² этот трСд Π½Π° Stack Overflow, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

Π”ΠΈΠ·Π°ΠΉΠ½

ΠžΡΠ½ΠΎΠ²Ρ‹

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρƒ нас всё Π³ΠΎΡ‚ΠΎΠ²ΠΎ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½Π°Ρ‡Π½Ρ‘ΠΌ с простого Π΄ΠΈΠ·Π°ΠΉΠ½Π°.

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Qt Designer, Π³Π΄Π΅ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Π΄ΠΈΠ°Π»ΠΎΠ³ Π½ΠΎΠ²ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Main Window ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Create.

ПослС этого Ρƒ вас Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Ρ„ΠΎΡ€ΠΌΠ° β€” шаблон для ΠΎΠΊΠ½Π°, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈ ΠΊΡƒΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠ· ΠΎΠΊΠ½Π° Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² ΠΈ Ρ‚.Π΄. ΠžΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с интСрфСйсом, ΠΎΠ½ довольно простой.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ нашСго Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, Ρ‚. ΠΊ. Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΎ Π±Ρ‹Π»ΠΎ Ρ‚Π°ΠΊΠΈΠΌ большим. А Π΅Ρ‰Ρ‘ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΡƒΠ±Π΅Ρ€Ρ‘ΠΌ автоматичСски Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠ΅ мСню ΠΈ строку состояния, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² нашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΎΠ½ΠΈ Π½Π΅ пригодятся.

ВсС элСмСнты Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈ ΠΈΡ… иСрархия ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π² ΠΏΡ€Π°Π²ΠΎΠΉ части ΠΎΠΊΠ½Π° Qt Designer ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Object Inspector. Π’Ρ‹ с Π»Ρ‘Π³ΠΊΠΎΡΡ‚ΡŒΡŽ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, кликая ΠΏΠΎ Π½ΠΈΠΌ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ Π² этом ΠΎΠΊΠ½Π΅. Или ΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈΡ… Π² основной Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ»Π°Π²ΠΈΡˆΡƒΒ DEL Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅.

Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΏΡƒΡΡ‚ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ. ЕдинствСнный ΠΎΡΡ‚Π°Π²ΡˆΠΈΠΉΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ β€” centralwidget, Π½ΠΎ ΠΎΠ½ Π½Π°ΠΌ понадобится, поэтому с Π½ΠΈΠΌ ΠΌΡ‹ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ Π΄Π΅Π»Π°Ρ‚ΡŒ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ ΠΊΡƒΠ΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π² ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ List Widget (Π½Π΅ List View) ΠΈ Push Button ΠΈΠ· Widget Box.

ΠœΠ°ΠΊΠ΅Ρ‚Ρ‹

ВмСсто использования фиксированных ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² элСмСнтов Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°ΠΊΠ΅Ρ‚Ρ‹. ЀиксированныС ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρƒ вас Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ (ΠΏΠΎΠΊΠ° Π²Ρ‹ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠΊΠ½Π°), Π½ΠΎ Π²Ρ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ всё Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠ°ΡˆΠΈΠ½Π°Ρ… ΠΈ/ΠΈΠ»ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах.

ΠœΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ для Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнтов. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΎΠΊΠ½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² Ρ‚ΠΎΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ.

Π”Π°Π²Π°ΠΉΡ‚Π΅ создадим Π½Π°ΡˆΡƒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ Π±Π΅Π· использования ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠ². ΠŸΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ список ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΡˆΠ»ΠΎ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² мСню Qt Designer Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Form, Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Preview ΠΈ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅Π΅ Π½Π° ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚ Π²Ρ‹ΡˆΠ΅. Выглядит Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π½Π΅ Ρ‚Π°ΠΊ Π»ΠΈ? Но Π²ΠΎΡ‚ Ρ‡Ρ‚ΠΎ случится, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΎΠΊΠ½Π°:

Наши ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΎΡΡ‚Π°Π»ΠΈΡΡŒ Π½Π° Ρ‚Π΅Ρ… ΠΆΠ΅ мСстах ΠΈ сохранили свои Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹, нСсмотря Π½Π° Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ основного ΠΎΠΊΠ½Π° измСнился ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅ Π²ΠΈΠ΄Π½ΠΎ. Π’ΠΎΡ‚ поэтому Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв стоит ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°ΠΊΠ΅Ρ‚Ρ‹. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π±Ρ‹Π²Π°ΡŽΡ‚ случаи, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½ΡƒΠΆΠ½Π° фиксированная ΠΈΠ»ΠΈ минимальная/максимальная ΡˆΠΈΡ€ΠΈΠ½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Но Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ прилоТСния Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°ΠΊΠ΅Ρ‚Ρ‹.

ОсновноС ΠΎΠΊΠ½ΠΎ ΡƒΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ°ΠΊΠ΅Ρ‚Ρ‹, поэтому Π½Π°ΠΌ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π² Π½Π°ΡˆΡƒ Ρ„ΠΎΡ€ΠΌΡƒ. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΊΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΏΠΎ Main Window Π² Object Inspector ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Lay out β†’ Lay out vertically. Π’Π°ΠΊΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠ»ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΏΠΎ пустой области Π² Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚Π΅ ΠΆΠ΅ ΠΎΠΏΡ†ΠΈΠΈ:

Π’Π°ΡˆΠΈ элСмСнты Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ порядкС, Ρ‡Ρ‚ΠΎ ΠΈ Π΄ΠΎ внСсённых ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½ΠΎ Ссли это Π½Π΅ Ρ‚Π°ΠΊ, Ρ‚ΠΎ просто ΠΏΠ΅Ρ€Π΅Ρ‚Π°Ρ‰ΠΈΡ‚Π΅ ΠΈΡ… Π½Π° Π½ΡƒΠΆΠ½ΠΎΠ΅ мСсто.

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ использовали Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅, всС элСмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ, Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ. МоТно ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ размСщСния для получСния ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°. НапримСр, Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… ΠΊΠ½ΠΎΠΏΠΎΠΊ Π² Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Если Ρƒ вас Π½Π΅ получаСтся ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ элСмСнт Π² Π³Π»Π°Π²Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π² ΠΎΠΊΠ½Π΅ Object Inspector.

ПослСдниС ΡˆΡ‚Ρ€ΠΈΡ…ΠΈ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, благодаря Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ, наши элСмСнты Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. ЕдинствСнноС, Ρ‡Ρ‚ΠΎ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ (Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ), β€” ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ имя элСмСнтов ΠΈ ΠΈΡ… тСкст.

Π’ простом ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π²Ρ€ΠΎΠ΄Π΅ этого с ΠΎΠ΄Π½ΠΈΠΌ лишь списком ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΡ‘Π½ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΠΌ Π² любом случаС просто ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ элСмСнтов β€” Ρ‚ΠΎ, ΠΊ Ρ‡Π΅ΠΌΡƒ стоит ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ°Ρ‚ΡŒ с самого Π½Π°Ρ‡Π°Π»Π°.

Бвойства элСмСнтов ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Property Editor.

Подсказка: Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€, ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ элСмСнты Π² интСрфСйс Qt Designer для ускорСния Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ скрытыС/Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ части интСрфСйса Ρ‡Π΅Ρ€Π΅Π· ΠΏΡƒΠ½ΠΊΡ‚ мСню View.

НаТмитС Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π² Ρ„ΠΎΡ€ΠΌΡƒ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π² Property Editor Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ всС свойства этого элСмСнта. Π’ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ нас ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‚ objectName ΠΈ text Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ QAbstractButton. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Ρ‹ Π² Property Editor Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ΠΌ ΠΏΠΎ названию Ρ€Π°Π·Π΄Π΅Π»Π°.

Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ objectName Π½Π° btnBrowse ΠΈ text Π½Π° Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ.

Π”ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Ρ‚Π°ΠΊ:

ИмСнСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° списка являСтся listWidget, Ρ‡Ρ‚ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС.

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΊΠ°ΠΊΒ design. uiΒ Π² ΠΏΠ°ΠΏΠΊΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

ΠŸΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ Π΄ΠΈΠ·Π°ΠΉΠ½ Π² ΠΊΠΎΠ΄

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ .ui-Ρ„Π°ΠΉΠ»Ρ‹ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ· Python-ΠΊΠΎΠ΄Π°, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΅ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡƒΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π»Π΅Π³Ρ‡Π΅. МоТно ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ .ui-Ρ„Π°ΠΉΠ»Π° Π² Python-Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΏΠΎΡ‚ΠΎΠΌ ΡΠΌΠΎΠΆΠ΅ΠΌΒ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Для этого ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ΡƒΒ pyuic5Β ΠΈΠ· Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°/ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ .ui-Ρ„Π°ΠΉΠ» Π² Python-Ρ„Π°ΠΉΠ» с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ design.py, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

$ pyuic5 path/to/design.ui -o output/path/to/design.py

ПишСм код

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Β design.py с Π½ΡƒΠΆΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ Π΄ΠΈΠ·Π°ΠΉΠ½Π° нашСго прилоТСния ΠΈ ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ созданиСм Π΅Π³ΠΎ Π»ΠΎΠ³ΠΈΠΊΠΈ.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ»Β main.pyΒ Π² ΠΏΠ°ΠΏΠΊΠ΅, Π³Π΄Π΅ находится design.py.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ интСрСсныС ΡΡ‚Π°Ρ‚ΡŒΠΈ ΠΏΠΎ Python.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π΄ΠΈΠ·Π°ΠΉΠ½

Для Python GUI прилоТСния понадобятся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ:

import sys  # sys Π½ΡƒΠΆΠ΅Π½ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ argv Π² QApplication
from PyQt5 import QtWidgets

Π’Π°ΠΊΠΆΠ΅ Π½Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ ΠΊΠΎΠ΄ Π΄ΠΈΠ·Π°ΠΉΠ½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ создали Ρ€Π°Π½Π΅Π΅, поэтому Π΅Π³ΠΎ ΠΌΡ‹ Ρ‚ΠΎΠΆΠ΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ:

import design  # Π­Ρ‚ΠΎ наш ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π΄ΠΈΠ·Π°ΠΉΠ½Π°

Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ» с Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½Π°, ΠΌΡ‹ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ. ВмСсто этого ΠΌΡ‹ создадим Π½ΠΎΠ²Ρ‹ΠΉ класс ExampleApp, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ объСдиним с ΠΊΠΎΠ΄ΠΎΠΌ Π΄ΠΈΠ·Π°ΠΉΠ½Π° для использования всСх Π΅Π³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

class ExampleApp(QtWidgets.QMainWindow, design.Ui_MainWindow):
    def __init__(self):
        # Π­Ρ‚ΠΎ здСсь Π½ΡƒΠΆΠ½ΠΎ для доступа ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ, ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ
        # ΠΈ Ρ‚.Π΄. Π² Ρ„Π°ΠΉΠ»Π΅ design.py
        super().__init__()
        self.setupUi(self)  # Π­Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ нашСго Π΄ΠΈΠ·Π°ΠΉΠ½Π°

Π’ этом классС ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с элСмСнтами интСрфСйса, Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ соСдинСния ΠΈ всё ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ потрСбуСтся. Но для Π½Π°Ρ‡Π°Π»Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ класс ΠΏΡ€ΠΈ запускС ΠΊΠΎΠ΄Π°. Π‘ этим ΠΌΡ‹ разбСрёмся Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ main():

def main():
    app = QtWidgets.QApplication(sys.argv)  # Новый экзСмпляр QApplication
    window = ExampleApp()  # Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса ExampleApp
    window.show()  # ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΎΠΊΠ½ΠΎ
    app.exec_()  # ΠΈ запускаСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

И Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΌΡ‹ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½ΠΎΠΉ конструкциСй:

if __name__ == '__main__':  # Если ΠΌΡ‹ запускаСм Ρ„Π°ΠΉΠ» Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π° Π½Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ
    main()  # Ρ‚ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Π΅ΠΌΒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽΒ main()

Π’ ΠΈΡ‚ΠΎΠ³Π΅Β main. py выглядит Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

import sys  # sys Π½ΡƒΠΆΠ΅Π½ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ argv Π² QApplication
from PyQt5 import QtWidgets
import design  # Π­Ρ‚ΠΎ наш ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π΄ΠΈΠ·Π°ΠΉΠ½Π°

class ExampleApp(QtWidgets.QMainWindow, design.Ui_MainWindow):
    def __init__(self):
        # Π­Ρ‚ΠΎ здСсь Π½ΡƒΠΆΠ½ΠΎ для доступа ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ, ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ
        # ΠΈ Ρ‚.Π΄. Π² Ρ„Π°ΠΉΠ»Π΅ design.py
        super().__init__()
        self.setupUi(self)  # Π­Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ нашСго Π΄ΠΈΠ·Π°ΠΉΠ½Π°

def main():
    app = QtWidgets.QApplication(sys.argv)  # Новый экзСмпляр QApplication
    window = ExampleApp()  # Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса ExampleApp
    window.show()  # ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΎΠΊΠ½ΠΎ
    app.exec_()  # ΠΈ запускаСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

if __name__ == '__main__':  # Если ΠΌΡ‹ запускаСм Ρ„Π°ΠΉΠ» Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π° Π½Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ
    main()  # Ρ‚ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Π΅ΠΌΒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽΒ main()

Если Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ этот ΠΊΠΎΠ΄:Β $ python3 main.py,Β Ρ‚ΠΎ нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ запустится!

Но Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π°Ρ‘Ρ‚, поэтому Π½Π°ΠΌ придётся с этим Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ.

ДобавляСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² нашС Python GUI ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ Π’Π΅ΡΡŒ дальнСйший ΠΊΠΎΠ΄ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ класса ExampleApp.

Начнём с ΠΊΠ½ΠΎΠΏΠΊΠΈ Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ. ΠŸΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ событиС Π²Ρ€ΠΎΠ΄Π΅ наТатия Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

self.btnBrowse.clicked.connect(self.browse_folder)

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ эту строку Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Β __init__ класса ExampleApp, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ привязку ΠΏΡ€ΠΈ запускС прилоТСния. А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ взглянСм Π½Π° Π½Π΅Ρ‘ ΠΏΠΎΠ±Π»ΠΈΠΆΠ΅:

  • self.btnBrowse: здСсь btnBrowse β€” имя ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Π² Qt Designer. selfΒ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ само Π·Π° сСбя ΠΈ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌΡƒ классу;
  • clickedΒ β€” событиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ. Π£ Ρ€Π°Π·Π½Ρ‹Ρ… элСмСнтов Ρ€Π°Π·Π½Ρ‹Π΅ события, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρƒ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ² списка Π΅ΡΡ‚ΡŒΒ itemSelectionChanged ΠΈ Ρ‚.Π΄.;
  • connect() β€” ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ привязываСт событиС ΠΊ Π²Ρ‹Π·ΠΎΠ²Ρƒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ;
  • self. browse_folder β€” просто функция (ΠΌΠ΅Ρ‚ΠΎΠ΄), ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ описали Π² классС ExampleApp.

Для открытия Π΄ΠΈΠ°Π»ΠΎΠ³Π° Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΠ°ΠΏΠΊΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнный ΠΌΠ΅Ρ‚ΠΎΠ΄Β QtWidgets.QFileDialog.getExistingDirectory:

directory = QtWidgets.QFileDialog.getExistingDirectory(self, "Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ")

Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉΒ directory присвоится Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½Π°Β None. Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠ΄ дальшС, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°ΠΊΡ€ΠΎΠ΅Ρ‚ Π΄ΠΈΠ°Π»ΠΎΠ³, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ΡƒΒ if directory:.

Для отобраТСния содСрТимого Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΒ os:

import os

И ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список содСрТимого ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

os.listdir(path)

Для добавлСния элСмСнтов Π² listWidget ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Β addItem(), Π° для удалСния всСх элСмСнтов Ρƒ нас Π΅ΡΡ‚ΡŒΒ self.listWidget.clear().

Π’ ΠΈΡ‚ΠΎΠ³Π΅ функция browse_folder Π΄ΠΎΠ»ΠΆΠ½Π° Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

def browse_folder(self):
    self. listWidget.clear()  # На случай, Ссли Π² спискС ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ элСмСнты
    directory = QtWidgets.QFileDialog.getExistingDirectory(self, "Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ")
    # ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΄ΠΈΠ°Π»ΠΎΠ³ Π²Ρ‹Π±ΠΎΡ€Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
    # Ρ€Π°Π²Π½ΠΎΠΉ ΠΏΡƒΡ‚ΠΈ ΠΊ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ

    if directory:  # Π½Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π» Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ
        for file_name in os.listdir(directory):  # для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ
            self.listWidget.addItem(file_name)   # Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» Π² listWidget

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ссли Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ, ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ:

Π’Π°ΠΊ выглядит вСсь ΠΊΠΎΠ΄ нашСго Python GUI прилоТСния:

import sys  # sys Π½ΡƒΠΆΠ΅Π½ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ argv Π² QApplication
import os  # ΠžΡ‚ΡΡŽΠ΄Π° Π½Π°ΠΌ понадобятся ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ для отобраТСния содСрТимого Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ

from PyQt5 import QtWidgets

import design  # Π­Ρ‚ΠΎ наш ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π΄ΠΈΠ·Π°ΠΉΠ½Π°

class ExampleApp(QtWidgets.QMainWindow, design. Ui_MainWindow):
    def __init__(self):
        # Π­Ρ‚ΠΎ здСсь Π½ΡƒΠΆΠ½ΠΎ для доступа ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ, ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ
        # ΠΈ Ρ‚.Π΄. Π² Ρ„Π°ΠΉΠ»Π΅ design.py
        super().__init__()
        self.setupUi(self)  # Π­Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ нашСго Π΄ΠΈΠ·Π°ΠΉΠ½Π°
        self.btnBrowse.clicked.connect(self.browse_folder)  # Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ browse_folder
                                                            # ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ

    def browse_folder(self):
        self.listWidget.clear()  # На случай, Ссли Π² спискС ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ элСмСнты
        directory = QtWidgets.QFileDialog.getExistingDirectory(self, "Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ")
        # ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΄ΠΈΠ°Π»ΠΎΠ³ Π²Ρ‹Π±ΠΎΡ€Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
        # Ρ€Π°Π²Π½ΠΎΠΉ ΠΏΡƒΡ‚ΠΈ ΠΊ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ

        if directory:  # Π½Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π²Ρ‹Π±Ρ€Π°Π» Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ
            for file_name in os.listdir(directory):  # для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ
                self. listWidget.addItem(file_name)   # Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» Π² listWidget

def main():
    app = QtWidgets.QApplication(sys.argv)  # Новый экзСмпляр QApplication
    window = ExampleApp()  # Π‘ΠΎΠ·Π΄Π°Ρ‘ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса ExampleApp
    window.show()  # ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ ΠΎΠΊΠ½ΠΎ
    app.exec_()  # ΠΈ запускаСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

if __name__ == '__main__':  # Если ΠΌΡ‹ запускаСм Ρ„Π°ΠΉΠ» Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π° Π½Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ
    main()  # Ρ‚ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Π΅ΠΌΒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽΒ main()

Β 


Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΈ основы использования Qt Designer ΠΈ PyQt для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Python GUI прилоТСния. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ спокойно ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΄ΠΈΠ·Π°ΠΉΠ½ прилоТСния ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ pyuic5 Π±Π΅Π· страха ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ написанный ΠΊΠΎΠ΄.

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ Β«PyQt: Getting started with PyQt and Qt DesignerΒ»

Π―Π·Ρ‹ΠΊΠΈ программирования для написания GUI-прилоТСния

Вопрос:

ΠšΡ€ΠΎΠΌΠ΅ .NET ΠΈΠ»ΠΈ Java, ΠΊΠ°ΠΊΠΎΠΉ язык ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для написания прилоТСния для Windows ΠΈ Linux?

Π›ΡƒΡ‡ΡˆΠΈΠΉ ΠΎΡ‚Π²Π΅Ρ‚:

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ свой вопрос: ΠΊΠ°ΠΊΠΈΠ΅ инструмСнты ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ, ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ языки ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚?

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ GTK: (ΠΈΠ· wikipedia)

C           GTK+ 
C++         gtkmm 
Ruby        ruby-gtk2 
Python      PyGTK 
Java        java-gnome 
. NET        Gtk# 
PHP         PHP-GTK 
Perl        Gtk2-Perl

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ для ΠΌΠ½ΠΎΠ³ΠΈΡ… языков, Ссли Π²Ρ‹ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ эти Π΄Ρ€ΡƒΠ³ΠΈΠ΅ инструмСнты для Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°:

Juce β€” An extensive cross-platform UI toolkit
FLTK β€” A light, cross platform, non-native widget toolkit
FOX toolkit β€” A fast, open source, cross-platform widget toolkit
GTK+ β€” The GIMP toolkit, a widget toolkit used by GNOME applications
IUP_(software) -- IUP cross platform static/dynamic library C/LUA, Lua (MIT) licence
JX Application Framework
Microsoft Foundation Class - The most commonly used widgeting toolkit for Windows.
Motif
Object Windows Library & OWLNext
Qt β€” A widget toolkit used by KDE
Standard Widget Toolkit β€” SWT for Java
Swing β€” Java widget toolkit
Tk β€” Toolkit part of the Tcl - project and often used by Perl and Python programmers
Ultimate++
Visual Component Library
wxWidgets β€” A free widget toolkit
XForms

ΠžΡ‚Π²Π΅Ρ‚ β„–1

Π‘++ с ΠΊΠ°Ρ€Ρ‚ΠΎΠΉ Qt: http://qt. nokia.com/products

ΠžΡ‚Π²Π΅Ρ‚ β„–2

Python – ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ для просмотра с PyQT ΠΈ wxPython Π² качСствС Π΄Π²ΡƒΡ… ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ² для графичСских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для ПК.

ΠžΡ‚Π²Π΅Ρ‚ β„–3

  • ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ язык программирования (ΠΈΠ»ΠΈ, Ρ‚ΠΎΡ‡Π½Π΅Π΅, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ выполнСния языка программирования), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с собствСнным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ GUI. Π­Ρ‚ΠΎ ΡƒΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ всС языки программирования, созданныС Π·Π° послСдниС 60 Π»Π΅Ρ‚, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ, Π½ΠΎ Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡΡΡŒ ΠΈΠΌΠΈ, C, Π‘++, Objective-C, Objective-C ++, D, Eiffel, Fortran, Pascal, Modula, Oberon, Go, Haskell, OCaml, Python, Ruby, Perl, PHP, Tcl, Π‘#, VB.NET, Java, Scala, F #, Newspeak, Animorphic Smalltalk, Eiffel, Lua, Potion, Falcon, Dao, Nimrod, Genie, Vala, Scheme, CommonLisp, Cobol.
  • ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ язык программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Java, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для написания графичСских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΎΠΊΠΎΠ»ΠΎ 400 языков, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎ Π·Π½Π°Π΅ΠΌ, плюс ΠΊΡ‚ΠΎ Π·Π½Π°Π΅Ρ‚, сколько языков Π½Π΅ извСстно общСизвСстно. Π’ этот список входят Java, Scala, NetRexx, Python, Ruby, PHP, ECMAScript, Groovy, Fan, Clojure, JavaFX, AspectJ, Fortress, Cobol.
  • ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ язык программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ CLI ΠΈ/ΠΈΠ»ΠΈ .NET(подсказка:.NET Π½Π΅ являСтся языком программирования, это ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³ΠΎΠ²Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ для ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° выполнСния CIL, Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ CLI, Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ CTS, Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ BCL ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ) ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для написания графичСских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π­Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΎΠΊΠΎΠ»ΠΎ 200 языков, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎ Π·Π½Π°Π΅ΠΌ. Π­Ρ‚ΠΎΡ‚ список Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π‘#, VB.NET, F #, Eiffel.NET, SpeΠ‘#, Sing #, X #, Polyphonic Π‘#, CΟ‰, Ruby, Python, Perl, Tcl, PHP, Π‘++, SABLE, Scheme, CommonLisp, Clojure, ВСнтилятор, Scala, Cobol, Cobra, Perl.
  • МногиС языки программирования привносят свой собствСнный графичСский интСрфСйс для написания графичСских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Tcl, Newspeak, Dolphin Smalltalk, Squeak Smalltalk, Delphi, Rebol.

И это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я ΠΌΠΎΠ³ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ с Π³ΠΎΠ»ΠΎΠ²Ρ‹.

ΠžΡ‚Π²Π΅Ρ‚ β„–4

Ну, Π²Ρ‹ сказали windows ΠΈ linux, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π²Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π½Π° Π‘++. Π‘ Π½ΠΈΠΌ сдСлано мноТСство Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ².

ΠžΡ‚Π²Π΅Ρ‚ β„–5

Ruby Shoes. Π­Ρ‚ΠΎ самый красивый API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Π²ΠΈΠ΄Π΅Π», ΠΈ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° Windows, OS X ΠΈ Linux.

ΠžΡ‚Π²Π΅Ρ‚ β„–6

Π›ΡŽΠ±ΠΎΠΉ язык, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ доступ ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠΌ вас графичСским интСрфСйсам.

ΠžΡ‚Π²Π΅Ρ‚ β„–7

Tcl/Tk

ΠžΡ‚Π²Π΅Ρ‚ β„–8

сборка x86

ΠžΡ‚Π²Π΅Ρ‚ β„–9

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ruby, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ FXRuby.

ΠžΡ‚Π²Π΅Ρ‚ β„–10

Π­Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ зависит ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с собствСнным ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом, я ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π²Π°ΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ wxWidgets ΠΈ C/Π‘++ (я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ прямо сСйчас).

ΠžΡ‚Π²Π΅Ρ‚ β„–11

Π― Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡƒΠ΄ΠΈΠ²Π»Π΅Π½, Ρ‡Ρ‚ΠΎ Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» REALbasic, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ Π² ΠΎΡ‡Π΅Π½ΡŒ схоТих ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ… с .NET ΠΈ Java ( IDE, которая ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° кросс-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ Visual Studio, ΠΈ которая Π½Π°Ρ‡ΠΈΠ½Π°Π»Π°ΡΡŒ ΠΊΠ°ΠΊ инструмСнт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Java Π½Π° Mac), Π½Π΅ Π² послСднюю ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ рСгулярно Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ Ρ€Π΅ΠΊΠ»Π°ΠΌΠ½Ρ‹Π΅ объявлСния Π² Stack Overflow.

Π‘Π°ΠΌ язык являСтся β€œOO VB”. НС совсСм VB.NET, Π½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ΅. Π›ΠΈΡ‡Π½ΠΎ ΠΌΠ½Π΅ Π½Π΅ нравится этот язык, Π½ΠΎ ΠΊΠ°ΠΊ срСда для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ графичСских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, это ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ. Π£ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ошибки, Π½ΠΎ Π΅Ρ‰Π΅ быстрСС ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ошибки, Ρ‡Π΅ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ интСрфСйс Π½Π° 2 ΠΈΠ»ΠΈ 3 Ρ†Π΅Π»Π΅Π²Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… (Ссли вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ являСтся ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠΏΡ€Π°Π²Π΄Ρ‹Π²Π°Π΅Ρ‚ созданиС собствСнной GUI-инфраструктуры).

Π― Π±Ρ‹, вСроятно, оставил Ρ‚ΡΠΆΠ΅Π»ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ внСшними ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, написанными Π½Π° C/Π‘++, Π½ΠΎ Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹Π΅ ΠΈ ΠΎΡ‡Π΅Π½ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ API, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ всС, ΠΎΡ‚ высокоуровнСвого SOAP-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π΄ΠΎ сырых TCP-сокСтов, Π° Ρ‚Π°ΠΊΠΆΠ΅ 2D ΠΈ 3D (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠΎΠ²Π΅Ρ€Ρ…Π½ΠΎΡΡ‚ΡŒ OpenGL) API.

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Mono – ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π‘#, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, – Π½ΠΎ с GTK вмСсто WinForms, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Mono Develop (I ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ это тСхничСски это Π½Π΅ β€œ.NET”, Π½ΠΎ Π²Ρ‹, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡƒΠΆΠ΅ рассмотрСли Π΅Π³ΠΎ). Для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с графичСским интСрфСйсом ΠΎΠ½ довольно Π·Ρ€Π΅Π»Ρ‹ΠΉ Π² Windows ΠΈ Linux, Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π²Ρ‹ создаСтС своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ с ΠΎΠ±Π΅ΠΈΡ… сторон с самого Π½Π°Ρ‡Π°Π»Π°.

ΠžΡ‚Π²Π΅Ρ‚ β„–12

Erlang ΠΈ Π΅Π³ΠΎ привязки ΠΊ Wx.

Π― Π½Π΅ встрСчал язык, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π½Π΅ Π±Ρ‹Π»ΠΎ привязки ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π½Π°Π±ΠΎΡ€Ρƒ инструмСнтов GUI: Ссли люди заботятся ΠΎ языкС, ΠΎΠ½ΠΈ строят привязки.

ΠžΡ‚Π²Π΅Ρ‚ β„–13

Одна ваТная Π²Π΅Ρ‰ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ слСдуСт ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, – это ваш ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΎΠΏΡ‹Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ являСтся второстСпСнной Ρ‚Π΅ΠΌΠΎΠΉ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ освоСниС языка программирования Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π‘ΠΊΠ°Π·Π°Π» Ρ‚Π°ΠΊ, я люблю Smalltalk Π² любом вкусС, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ (Π² ΠΌΠΈΡ€Π΅ Smalltalk):

  • Dolphin Smalltalk (являСтся Ρ€ΠΎΠ΄Π½Ρ‹ΠΌ Windows, Π½ΠΎ exes Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° Linux ΠΏΠΎΠ΄
    Π’ΠΈΠ½ΠΎ)
  • Visual Works
  • Visual Age
  • Smalltalk/X
  • Писк /Pharo

Они ΡΠ²Π»ΡΡŽΡ‚ΡΡ основными Smalltalk ΠΈ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ порядкС.

ΠžΡ‚Π²Π΅Ρ‚ β„–14

Π’ зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ опрСдСляСтС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ GUI.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ HTML/Flash/Flex/JavaScript для создания прилоТСния Adobe AIR, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Python с графичСским интСрфСйсом с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ wxPython β€” настоящий Python

БущСствуСт мноТСство Π½Π°Π±ΠΎΡ€ΠΎΠ² инструмСнтов для графичСского ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса (GUI), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с языком программирования Python. Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‚Ρ€ΠΎΠΉΠΊΠ° β€” это Tkinter, wxPython ΠΈ PyQt. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих Π½Π°Π±ΠΎΡ€ΠΎΠ² инструмСнтов Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Windows, macOS ΠΈ Linux, Π° PyQt ΠΈΠΌΠ΅Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах.

ГрафичСский интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ β€” это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΎΠΊΠ½Π° ΠΈ мноТСство Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для взаимодСйствия с вашим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π₯ΠΎΡ€ΠΎΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€. Он ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΠΈ, Π²ΠΊΠ»Π°Π΄ΠΊΠΈ ΠΈ Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ загруТаСтся вСсь ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ графичСский ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π½Π°Π±ΠΎΡ€ инструмСнтов wxPython GUI.

Π’ΠΎΡ‚ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹Π΅ Ρ‚Π΅ΠΌΡ‹:

  • Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹ с wxPython
  • ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
  • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ каркасного прилоТСния
  • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ прилоТСния

НачнСм ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ!

Начало Ρ€Π°Π±ΠΎΡ‚Ρ‹ с wxPython

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ wxPython GUI прСдставляСт собой ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ Python для Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ C++, которая называСтся wxWidgets. ΠŸΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ выпуск wxPython Π±Ρ‹Π» Π² 1998, поэтому wxPython сущСствуСт довольно Π΄Π°Π²Π½ΠΎ. ОсновноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ wxPython ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π½Π°Π±ΠΎΡ€ΠΎΠ² инструмСнтов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ PyQt ΠΈΠ»ΠΈ Tkinter , Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ wxPython ΠΏΠΎ возмоТности ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ настоящиС Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹ Π½Π° собствСнной ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ прилоТСния wxPython СстСствСнными для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚.

PyQt ΠΈ Tkinter сами Ρ€ΠΈΡΡƒΡŽΡ‚ свои Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹, поэтому ΠΎΠ½ΠΈ Π½Π΅ всСгда ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ с Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π°ΠΌΠΈ, хотя PyQt ΠΎΡ‡Π΅Π½ΡŒ Π±Π»ΠΈΠ·ΠΎΠΊ.

Π­Ρ‚ΠΎ Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ wxPython Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Ρ‹. На самом Π΄Π΅Π»Π΅ Π² Π½Π°Π±ΠΎΡ€ инструмСнтов wxPython Π²Ρ…ΠΎΠ΄ΠΈΡ‚ мноТСство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ дСсятки основных Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ². На страницС Π·Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ wxPython Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π» ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ 9.0007 Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стоит ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ.

Π—Π΄Π΅ΡΡŒ находится Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° дСмонстрационного ΠΏΠ°ΠΊΠ΅Ρ‚Π° wxPython. Π­Ρ‚ΠΎ ΠΌΠΈΠ»ΠΎΠ΅ малСнькоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ ΠΏΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ΠΎΠ², входящих Π² состав wxPython. ДСмонстрация позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π΅Π³ΠΎ Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅. Π’Ρ‹ Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ Π² дСмовСрсии, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ ваши измСнСния ΠΏΠΎΠ²Π»ΠΈΡΡŽΡ‚ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ PySimpleGUI ΠΊΠ°ΠΊ sg

layout = [[sg. Button('ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π½ΠΎΠ²Ρ‹ΠΉ стСк', size=(30,4))]]

window = sg.Window('GUI SAMPLE', layout, size=(200,100))

событиС, значСния = window. read()

1

2

3

4

5

6

7

8

9

10

11

#Import PySimpleGUI

import PySimpleGUI as sg

Β 

#Draw the button

layout = [[sg.Button('Hello, New Stack', size=(30,4))]]

3

02 3

2 3

2 #ΠΠ°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΊΠ½ΠΎ

window = sg.Window('GUI SAMPLE', layout, size=(200,100))

Β 

#ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ происходит ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ

событиС, значСния = window.read()

ΠΈΠΌΠΏΠΎΡ€Ρ‚ tkinter ΠΊΠ°ΠΊ tk

ΠΈΠ· tkinter import simpledialog

ΠšΠžΠ Π•ΠΠ¬ = tk.Tk()

USER_INP = simpledialog.askstring(title="Input Test",

Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β  prompt="Π’Π²Π΅Π΄ΠΈΡ‚Π΅ вашС имя:")

1

2

3

4

5

6

7

8

10

11

12

13

14

15

16

# Import Tkinter ΠΈ Simpledialog

Π˜ΠΌΠΏΠΎΡ€Ρ‚ Tknter As TK

ΠΈΠ· Thkinter Import Simpledialog

# ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ

root = tk.tk ()

# Define Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹

ROOT.WITHDRAK. ()

# ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Π΄ΠΈΠ°Π»ΠΎΠ³ Π²Π²ΠΎΠ΄Π°

user_inp = simpledialog.askstring (title = "test Test",

rample = "Π’Π²Π΅Π΄ΠΈΡ‚Π΅ своС имя ?:")

# ΠŸΠ΅Ρ‡Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°

Print (") ΠŸΡ€ΠΈΠ²Π΅Ρ‚", USER_INP)