Pyqt install windows: python — How to install PyQt5 on Windows?
ΠΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ PyQt5 Π² Windows?
ΠΠΎΠΏΡΠΎΡ:
ΠΠΎΠ³Π΄Π° Ρ ΠΏΡΡΠ°ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ PyQt5 Π½Π° Windows Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
python configure.py
Π― ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ:
Error: Make sure you have a working Qt qmake on your PATH.
Π― ΠΏΠΎΠ»ΡΡΠΈΠ» pyQt5 ΠΎΡ PyQt5 Π‘ΠΊΠ°ΡΠ°ΡΡ.
ΠΠ°ΠΊ Ρ ΠΌΠΎΠ³Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ PyQt5?
ΠΠ±Π½ΠΎΠ²ΠΈΡΡ:
Π― ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ» Qt 5.0.2 for Windows 64-bit (VS 2012, 500 MB)
ΡΠΎ ΡΡΡΠ°Π½ΠΈΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Qt, ΠΈ ΡΠ΅ΠΏΠ΅ΡΡ Ρ ΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ° ΠΎΡΠΈΠ±ΠΊΠ°:
Querying qmake about your Qt installation... Determining the details of your Qt installation... Error: Failed to determine the detail of your Qt installation. Try again using the --verbose flag to see more detail about the problem.
Π ΠΊΠΎΠ³Π΄Π° Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ python configure.py --verbose
:
Querying qmake about your Qt installation... Determining the details of your Qt installation... C:\Qt\Qt5.0.2\5.0.2\msvc2012_64\bin\qmake.exe -spec win32-msvc2008 -o qtdetail.m k qtdetail.pro nmake -f qtdetail.mk release 'nmake' nΓ£o Γ© reconhecido como um comando interno ou externo, um programa operΓ‘vel ou um arquivo em lotes. Error: Failed to determine the detail of your Qt installation. Try again using the --verbose flag to see more detail about the problem.
Π― Π΄ΠΎΠ±Π°Π²ΠΈΠ» C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin
(ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ nmake.exe
) Π² PATH ΠΈ ΠΏΠΎΠ»ΡΡΠΈΠ» ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ:
Querying qmake about your Qt installation... Determining the details of your Qt installation... C:\Qt\Qt5.0.2\5.0.2\msvc2012_64\bin\qmake.exe -spec win32-msvc2008 -o qtdetail.mk qtdetail.pro nmake -f qtdetail.mk release Microsoft (R) Program Maintenance Utility Version 11.00.50727.1 Copyright (C) Microsoft Corporation. All rights reserved. "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\nmake.exe" -f qtdetail.mk.Release Microsoft (R) Program Maintenance Utility Version 11.00.50727.1 Copyright (C) Microsoft Corporation. All rights reserved. cl -c -nologo -Zm200 -Zc:wchar_t -O2 -MD -GR -W3 -w34100 -w34189 -EHsc -DUNICODE -DWIN32 -DQT_NO_DEBUG -DQT_CORE_LIB -I"..\..\..\..\..\..\..\Qt\Qt5.0.2\5.0.2\msvc2012_64\include" -I"..\..\..\..\..\..\..\Qt\Qt5.0.2\5.0.2\msvc2012_64\include\QtCore" -I"release" -I"..\..\..\..\..\..\..\Qt\Qt5.0.2\5.0.2\msvc2012_64\mkspecs\win32-msvc2008" -Forelease\ @C:\Users\Victor\AppData\Local\Temp\nm68EA.tmp NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\cl.EXE"' : return code '0xc0000135' Stop. NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\nmake.exe"' : return code '0x2' Stop.
ΠΡΡΡΠΈΠΉ ΠΎΡΠ²Π΅Ρ:
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ PyQt β ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊ (ΡΡΡΠ»ΠΊΠ° Π² Π²Π°ΡΠ΅ΠΌ ΠΎΡΠ²Π΅ΡΠ΅, ΡΠ°Π³ β 5). ΠΡΠ»ΠΈ Π²Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ python 3.3, ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ Π²ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ PyQt5 ΠΊ ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ python. ΠΠ°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ (Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ·: nmake, nmake install, python configure).
ΠΡΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΡΠ±ΠΎΡΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠ°Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄ΡΡΠ³ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ python, Π³Π΄Π΅ Π½Π΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊΠ°, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡΠΌΠΈ Π½Π° Π±Π΅ΡΠ΅Π³Ρ ΡΠ΅ΠΊΠΈ).
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ Π²Π΅ΡΡΠΈΡ PyQt5, ΡΠ°Π³ΠΈ (ΠΊΠ°ΠΊ Π²Ρ Π½Π°ΡΠ»ΠΈ) Π·Π΄Π΅ΡΡ, Π½ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ Ρ Π²Π°Ρ Π΅ΡΡΡ python ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΈ Π½Π° Π²Π°ΡΠ΅ΠΌ ΠΏΡΡΠΈ. Π£ΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΠΈ Π½Π° Π²Π°ΡΠ΅ΠΌ ΠΏΡΡΠΈ Π±ΡΠ»ΠΈ ΡΠ°ΠΌ, Π³Π΄Π΅ Π²Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΠΈΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ. Π― Π±Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π΅ΡΡΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊΠ°, Π½ΠΎ ΡΠ½Π°ΡΠ°Π»Π° Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ python 3.3.
ΠΡΠ²Π΅Ρ β1
Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ cmd
pip install pyqt5
Π ΠΎΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π±Π΅Π· ΠΏΡΠΎΠ±Π»Π΅ΠΌ!
ΠΡΠ²Π΅Ρ β2
Π‘Π½Π°ΡΠ°Π»Π° ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΡΠΎ Π² ΠΎΠΊΠ½Π΅ Windows cmd:
pip3 install pyqt5
ΠΡΠ»ΠΈ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΡΡΠΏΠ΅ΡΠ½ΡΠΌ, ΠΎΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
C:\Windows\System32>pip3 install pyqt5
Collecting pyqt5
Downloading PyQt5-5.9-5.9.1-cp35.cp36.cp37-none-win_amd64.whl (77.2MB)
100% |################################| 77.2MB 13kB/s
Collecting sip<4.20,>=4.19.3 (from pyqt5)
Downloading sip-4.19.3-cp35-none-win_amd64.whl (49kB)
100% |################################| 51kB 984kB/s
Installing collected packages: sip, pyqt5
Successfully installed pyqt5-5.9 sip-4.19.3
ΠΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΡΡ ΡΡΡΠ»ΠΊΡ ΠΈΠ· SourceForge.
ΠΠ½ΡΡΠ°Π»Π»ΡΡΠΎΡΡ PyQt5.exe Π΄Π»Ρ Windows
ΠΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Π°ΠΌ?
Π‘Π½Π°ΡΠ°Π»Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅, ΠΊΠ°ΠΊΠ°Ρ Ρ Π²Π°Ρ Π²Π΅ΡΡΠΈΡ Python ΠΈ Π΅ΡΡΡ Π»ΠΈ Ρ Π²Π°Ρ 32-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΉ ΠΈΠ»ΠΈ 64-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΉ Python.
ΠΠ°ΡΠ΅ΠΌ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠ². Π― Π½Π° Python 3.5 64-Π±ΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΠΈΡΡ .exe Ρ ΡΡΠΈΠΌΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠΌΠΈ. ΠΠΎΠ³Π΄Π° Π²Ρ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π² SourceForge, Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ Ρ Π’ΠΠΠ¬ΠΠ .zip ΠΈΠ»ΠΈ .tar.gz. ΠΡΠΎ Π½Π΅ ΡΠΎ, ΡΡΠΎ Π²Ρ ΠΈΡΠ΅ΡΠ΅. Π₯ΠΎΡΠΎΡΠ°Ρ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΅Π»ΠΊΠ½ΡΡΡ, ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠΎΠ»Π±ΡΠΎΠΌ Β«ΠΠ°Π³ΡΡΠ·ΠΊΠΈ/ΠΠ΅Π΄Π΅Π»ΡΒ».
Π ΠΌΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Ρ ΠΎΡΠΊΡΠΎΡ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ PyQt-5.6.
ΠΠ΄Π΅ΡΡ ΠΌΡ Π·Π°ΠΌΠ΅ΡΠ°Π΅ΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ .exe ΡΠ°ΠΉΠ»Ρ:
PyQt-5.6
|_PyQt5-5.6-gpl-Py3.5-Qt5.6.0-x32-2.exe
|_PyQt5-5.6-gpl-Py3.5-Qt5.6.0-x64-2.exe
|_PyQt5_gpl-5.6.zip
|_PyQt5_gpl-5.6.tar.gz
Π― Π·Π½Π°Ρ, ΡΡΠΎ ΡΡΠΎ Python 3.5 Π½Π° Py3.5
Π² ΠΈΠΌΠ΅Π½ΠΈ ΡΠ°ΠΉΠ»Π°. Π― ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΡ 64-Π±ΠΈΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π·Π°Π³ΡΡΠΆΡ PyQt5-5.6-gpl-Py3.5-Qt5.6.0-x64-2.exe
. ΠΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ!
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²Π΅ΡΡΠΈΡ, Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ Ρ Π²Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° .exe. ΠΡΠΎ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ Π²Ρ Π²ΡΠ±ΡΠ°Π»ΠΈ Π½Π΅Π²Π΅ΡΠ½ΡΠΉ. Π― Π½Π΅ ΠΏΡΡΠ°ΡΡΡ Π·Π²ΡΡΠ°ΡΡ ΠΊΠ°ΠΊ dbagβ¦ Π― Π΄Π΅Π»Π°Π» ΡΡΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·!
Π§ΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΠΏΠ΅ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ, Π² ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ΅ Python ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ:
from PyQt5 import QtCore, QtGui, QtWidgets
ΠΡΠ²Π΅Ρ β3
Π― Π½Π°ΡΠ΅Π» ΡΠ°ΡΡΠΈΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅β¦
Π¨Π°Π³ΠΈ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ pyQt5 (Ρ VS 2012) Π² Windows:
1) Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Qt 5.0.2 for Windows 64-bit (VS 2012, 500 MB)
ΠΈΠ· Π·Π΄Π΅ΡΡ.
2) ΠΠΎΠ»ΡΡΠΈΡΠ΅ sip-4.14.7
(ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ½ΠΈΠΌΠΎΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ) ΠΈΠ· Π·Π΄Π΅ΡΡ.
3) ΠΠ·Π²Π»Π΅ΠΊΠΈΡΠ΅ ΡΠ°ΠΉΠ» ΠΈ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ Developer Command Prompt for VS2012
.
4) ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ (Π² ΠΏΠ°ΠΏΠΊΠ΅ sip):
python configure.py
nmake
nmake install
5) ΠΠΎΠ»ΡΡΠΈΡΠ΅ pyQt5
ΠΈΠ· Π·Π΄Π΅ΡΡ.
6) ΠΠ·Π²Π»Π΅ΠΊΠΈΡΠ΅ ΡΠ°ΠΉΠ» ΠΈ ΠΎΡΠΊΡΠΎΠΉΡΠ΅ VS2012 x64 Native Tools Command Prompt
.
7) ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
python configure.py
UPDATE: ΠΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π½ΠΈΠΆΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ:
nmake
nmake install
Π Π΅ΡΠ΅Π½ΠΈΠ΅: Ρ ΠΏΠΎΠΏΡΡΠ°ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ pyQt4 Ρ Qt5β¦ ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ pyQt5 Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈ Π΅ΡΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ/Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
ΠΡΠ²Π΅Ρ β4
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ°ΠΌΡΠΉ) ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΡΠ°ΠΉΡΠ°, ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ PyQt5, β ΡΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π²Π΅ΡΡΠΈΠΉ Anaconda. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ ΡΠ°ΠΉΡΠΎΠ², ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ² ΠΈΡ . Π‘ΠΏΠΈΡΠΎΠΊ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΡΠ°ΠΉΡΠΎΠ² Ρ Π²Π΅ΡΡΠΈΡΠΌΠΈ Anaconda ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π·Π΄Π΅ΡΡ.
- Dowload Anaconda3 ΠΈΠ»ΠΈ Anaconda2
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π΅Π³ΠΎ.
- ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΡΡΡ PyQt5 Π² ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ Anaconda ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ System Environment.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
PATH: ....; C:\Anaconda3\Lib\site-packages\PyQt5; ...
- ΠΠ½ Π³ΠΎΡΠΎΠ² ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΠ²Π΅Ρ β5
Π― Π½ΠΎΠ²ΠΈΡΠΎΠΊ Π² Python ΠΈ PyQt5. Π― ΠΏΡΡΠ°Π»ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ pip, Π½ΠΎ Ρ ΠΌΠ΅Π½Ρ Π±ΡΠ»ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π½ΠΈΠΌ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ Ρ Windows. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π²Π΅ΡΡΠΈΡ Python 3.4 ΠΈΠ»ΠΈ Π²ΡΡΠ΅, pip ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΈ Π³ΠΎΡΠΎΠ² ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
python -m pip install pyqt5
ΠΡΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ ΠΏΡΡΡ ΠΊ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ Python Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Ρ PATH. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΠΏΠΎΠ»Π½ΡΠΉ ΠΏΡΡΡ ΠΊ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ Python (Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ, where python
Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ Π΅Π³ΠΎ), Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
C:\users\userName\AppData\Local\Programs\Python\Python34\python.exe -m pip install pyqt5
ΠΡΠ²Π΅Ρ β6
ΠΡΡΠ³Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠ΄ cmd
:
easy_install pyqt5
ΠΡΠ²Π΅Ρ β7
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Windows 10, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅
py -m pip install pyqt5
Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΊΠ°ΡΠ°ΡΡ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²Π΅ΡΡΠΈΠΈ Python ΠΈΠ»ΠΈ Windows, ΠΈΠ½ΠΎΠ³Π΄Π° python -m pip install pyqt5
Π½Π΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ py. pip β ΡΡΠΎ Ρ
ΠΎΡΠΎΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π΅ΡΠ΅ΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ Ρ Π±Ρ ΠΏΠΎΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» ΡΡΠΎ.
ΠΡΠ²Π΅Ρ β8
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΊΡΠΏΠΎΠ», ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ qt (ΠΈ ΠΈΠ»ΠΈ pyqt)
ΠΡΠ²Π΅Ρ β9
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Anaconda. Π‘Π½Π°ΡΠ°Π»Π° ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Anaconda ΠΈΠ»ΠΈ Miniconda Π½Π° Π²Π°ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ (ΡΠΊΠ°ΡΠ°ΠΉΡΠ΅ Ρ Π·Π΄Π΅ΡΡ), Π° Π·Π°ΡΠ΅ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ pyqt ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
conda install pyqt
ΠΠ½ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»Ρ ΠΎΠ±Π΅ΠΈΡ Π²Π΅ΡΡΠΈΠΉ python (2 ΠΈ 3).
ΠΡΠ²Π΅Ρ β10
Π§ΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²Π΅ΡΡΠΈΡ PyQt5 ΠΏΠΎΠ΄ GPL, Π·Π°ΠΏΡΡΡΠΈΡΠ΅ (ΡΠΌ. ΠΡΠΎΠ΅ΠΊΡ PyQt5):
pip3 install pyqt5
ΠΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡ ΠΊΠΎΠ»Π΅ΡΠΎ Python Π΄Π»Ρ Π²Π°ΡΠ΅ΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΈ Π²Π°ΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ Python (ΠΏΡΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠΈ, ΡΡΠΎ ΠΎΠ±Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ).
(ΠΠΎΠ»Π΅ΡΠΎ Π±ΡΠ΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°Π³ΡΡΠΆΠ΅Π½ΠΎ ΠΈΠ· ΠΈΠ½Π΄Π΅ΠΊΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Python.)
ΠΠΎΠ»Π΅ΡΠΎ PyQt5 Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ°ΡΡΠΈ Π²Π΅ΡΡΠΈΠΈ LGt Qt. ΠΠ΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ Qt ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ.
(ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠΉ sip
ΡΠΏΠ°ΠΊΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»Π΅ΡΠΎ ΠΈ Π±ΡΠ΄Π΅Ρ Π·Π°Π³ΡΡΠΆΠ΅Π½ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ.)
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅:
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅, Π³ΠΎΠ²ΠΎΡΡΡΠ΅Π΅ ΡΡΠΎ-ΡΠΎ ΠΊΠ°ΠΊ
No downloads could be found that satisfy the requirement
ΡΠΎΠ³Π΄Π° Π²Ρ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π½Π΅ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ Π²Π΅ΡΡΠΈΡ Python.
ΠΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ PyQt5 | Interesting Life
Π ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΡΠΎΡΠΈΠΎΠ»ΠΎΠ²Β ΠΊΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ PyQt5 Π½Π° ΡΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ, Π½ΠΎ Π²ΡΠ΅ ΠΎΠ½ΠΈ ΠΈΠ· ΡΠ΅ΡΠΈΠΈ «Π»ΡΡΡΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ, ΡΠ΅ΠΌ ΡΡΠΎ».
Π§ΡΠΎΠ±Ρ Π½Π΅ ΠΎΡΡΠ°Π²Π°Π»ΠΎΡΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ², Π½Π°ΡΠ½Π΅ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ PyQt5 Ρ ΡΠ°ΠΌΠΎΠ³ΠΎ Π½Π°ΡΠ°Π»Π°, ΡΠΎ Π΅ΡΡΡ Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΠΈΡΠΎΠ½Π°, ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΡΡΠ°Π½Π΅Ρ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΆΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠΎΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ, ΡΡΠΎΠ±Ρ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ ΠΈ Π²Π΅ΡΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΠΈΡΠΎΠ½Π° ΠΈ PyQt5 Π±ΡΠ»ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ.
ΠΡΠ»ΠΈ Π²Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅ΡΠ΅ΡΡ ΠΊΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π΄Π°Π½Π½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, ΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΏΠΈΡΠΎΠ½ Ρ Π²Π°Ρ ΡΠΆΠ΅ ΡΡΠΎΠΈΡ. ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊΠ°Ρ Π²Π΅ΡΡΠΈΡ ΠΏΠΈΡΠΎΠ½Π° ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° Π½Π° Π²Π°Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²Π²Π΅ΡΡΠΈ python —version
ΠΡΠ»ΠΈ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ ΠΎΡΠ²Π΅ΡΠ° Π½Π° Π΄Π°Π½Π½ΡΠΉ Π·Π°ΠΏΡΠΎΡ Π½Π΅ ΠΏΡΠΈΡΠ»ΠΎ, Π½ΠΎ ΠΏΠΈΡΠΎΠ½ Π²Ρ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π»ΠΈ ΠΏΠΈΡΠΎΠ½, ΡΠΎ ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ Ρ Π²Π°Ρ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄Ρ.
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Ρ Π²Π°Ρ ΡΠ°Π±ΠΎΡΠ°Π» PyQt, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, ΡΡΠΎΠ±Ρ Ρ Π²Π°Ρ ΡΡΠΎΡΠ» ΠΏΠΈΡΠΎΠ½ Π²Π΅ΡΡΠΈΠΈ 3.6, Π½Π΅ Π²ΡΡΠ΅! ΠΠ΅ΡΡΠΈΡ 3.7 ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ!
ΠΠ΅ΡΡΠΈΠΈ Π½ΠΈΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ ΡΠΎΠ³Π΄Π° Π½ΠΎΠ²ΠΈΠ½ΠΊΠΈ Π±ΡΠ΄ΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Ρ, Python 3.6 ΠΏΠΎΡΡΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΠ²ΠΌΠ΅ΡΠ°Π΅Ρ Π² ΡΠ΅Π±Π΅ Π½ΠΎΠ²ΠΈΠ·Π½Ρ ΠΈ ΠΏΠΎΠ»Π½ΡΡ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΊΠΎΠΏΠ°ΡΡΡΡ Π½Π° ΡΠ°ΠΉΡΠ΅, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Π΅ΡΡΠΈΡ 3.6.Β
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅Β python.org/downloadsΒ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½ΡΠΆΠ½ΡΡ Π²Π΅ΡΡΠΈΡ.
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠΎΡΡΠ°Π²ΡΡΠ΅ ΡΠ»Π°ΠΆΠΎΠΊ Π½Π° Π½Π°Π΄ΠΏΠΈΡΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² Path.
ΠΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΡΡΠ΅Π΄Ρ?
ΠΠ°ΠΆΠ°ΡΡ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ Π½Π° «ΠΌΠΎΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ», Π² Π²ΡΠΏΠ°Π΄Π°ΡΡΠ΅ΠΌ ΠΎΠΊΠ½Π΅ Π²ΡΠ±ΡΠ°ΡΡ «ΡΠ²ΠΎΠΉΡΡΠ²Π°». ΠΠΎΡΠΎΠΌ Π²ΡΠ±ΡΠ°ΡΡ «Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ», Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠ±ΡΠ°ΡΡ «ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄Ρ».
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΡΠ°ΠΌΠΎΠ³ΠΎ PyQt5.
ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ½ΠΎΠ²Π° ΠΏΡΠΈΠ΄Π΅ΡΡΡ Π·Π°Ρ ΠΎΠ΄ΠΈΡΡ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ ΠΈ Π²ΠΏΠΈΡΠ°ΡΡ pip install pyqt5 pyqt5-tools
Π§ΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΎΠΌ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠΉΡΠΈ Π² ΠΏΠ°ΠΏΠΊΡΒ C:\Users\User\AppData\Local\Programs\Python\Python36-32\Lib\site-packages\pyqt5_tools
Π Π½Π΅ΠΉ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Designer.exe, ΠΆΠΌΠ΅ΡΠ΅ Π½Π° Π½Π΅Ρ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ ΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΠ΅ ΡΡΠ»ΡΠΊ, Π΄Π°Π»Π΅Π΅ ΡΡΠΎΡ ΡΡΠ»ΡΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ Π½Π° ΡΠ°Π±ΠΎΡΠΈΠΉ ΡΡΠΎΠ», ΠΈ ΡΠΏΠΎΠΊΠΎΠΉΠ½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ.
Kotlin ΠΈΠ»ΠΈ Java Android
Π€ΡΠΈΠ»Π°Π½Ρ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ²
Π Π΅Π°Π»ΡΠ½ΡΠΉ Π·Π°ΡΠ°Π±ΠΎΡΠΎΠΊ Π½Π° Π°Π½Π΄ΡΠΎΠΈΠ΄
Β
Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΠΎ PyQt5
Π ΡΡΠΎΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΏΠΎ PyQt5 Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Python 3 ΠΈ Qt Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² Windows, Mac ΠΈΠ»ΠΈ Linux. ΠΡ Π΄Π°ΠΆΠ΅ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ PyQt5?
PyQt β ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Qt GUI (GUI β ΡΡΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ) Π² Python.Β Π‘Π°ΠΌ Qt, ΠΊΠ°ΠΊ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° C++. ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΅Π³ΠΎ Π² Python, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡΡΡΡΠ΅Π΅, Π½Π΅ ΠΆΠ΅ΡΡΠ²ΡΡ ΠΏΡΠΈ ΡΡΠΎΠΌ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ C++.
PyQt5 ΡΡΠΎ ΡΠ°ΠΌΠ°Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ, ΠΏΡΡΠ°Ρ Π²Π΅ΡΡΠΈΡ Qt. ΠΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ PyQt4, Π½ΠΎ ΡΡΠ° Π²Π΅ΡΡΠΈΡ ΡΡΡΠ°ΡΠ΅Π»Π° ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ.
ΠΠΎΠ²ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½Ρ PyQt β ΡΡΠΎ Qt for Python. ΠΠ½Π° ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΠΌ API, Π½ΠΎ Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ PyQt ΠΈΠΌΠ΅Π΅Ρ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ LGPL ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ Π΄Π°ΠΆΠ΅ Π² ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°Ρ . ΠΠ½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Qt, Π° Π·Π½Π°ΡΠΈΡ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π·Π° Π½Π΅ΠΉ Π±ΡΠ΄ΡΡΠ΅Π΅. ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ PyQt, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½Π° Π±ΠΎΠ»Π΅Π΅ Π·ΡΠ΅Π»Π°Ρ. ΠΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΈΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΡ ΠΎΠΆΠΈ, Π²Ρ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° Qt for Python ΠΏΠΎΠ·Π΄Π½Π΅Π΅.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° PyQt
ΠΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠΏΡΠ°Π²Π»ΡΡΡ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΠΌΠΈ Π² Python β ΡΠ΅ΡΠ΅Π· Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄Ρ. ΠΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΡΡΠ΅Π΄Π° β ΡΡΠΎ ΠΏΡΠΎΡΡΠΎ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°. Π ΠΎΡΠ»ΠΈΡΠΈΠΈ ΠΎΡ ΠΎΠ±ΡΠ΅ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΡΡΠΎ Π½Π΅ Π½Π΅ ΠΏΠΎΠ²Π»ΠΈΡΠ΅Ρ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ Π²Π°ΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΡ.
ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Ρ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
python3 -m venv venv
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠΎΠ·Π΄Π°ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ venv/
. Π§ΡΠΎΠ±Ρ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π΄Ρ Π² Windows, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
call venv/scripts/activate.bat
Π Π΄Π»Ρ Mac ΠΈ Linux Π²ΠΎΡ ΡΡΡ:
source venv/bin/activate
Π’ΠΎ, ΡΡΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΡΡΠ΅Π΄Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°Π½Π°, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΏΠΎ ΠΏΡΠ΅ΡΠΈΠΊΡΡ (venv)
Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅:
Π’Π΅ΠΏΠ΅ΡΡ, ΡΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ PyQt, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
pip install PyQt5==5.9.2
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π²Π΅ΡΡΠΈΡ 5.9.2
, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π½Π΅ Π²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ PyQt ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ ΡΡΠ°Π±ΠΈΠ»ΡΠ½Ρ. ΠΠ°Π½Π½Π°Ρ Π²Π΅ΡΡΠΈΡ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ
ΠΎΡΠΎΡΠΎ.
ΠΡΠ°ΠΊ, ΠΏΠΎΠ·Π΄ΡΠ°Π²Π»ΡΠ΅ΠΌ! ΠΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ PyQt5.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ GUI (Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ)
Π’Π΅ΠΏΠ΅ΡΡ ΡΠ°ΠΌΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π²Π°Ρ ΠΏΠ΅ΡΠ²ΡΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ! Π Π½Π°ΡΠ΅ΠΉ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅ Π·Π°ΠΏΡΡΡΠΈΠΌ Python ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
Π‘Π½Π°ΡΠ°Π»Π° ΠΌΡ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ PyQt ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° import
:
from PyQt5.QtWidgets import QApplication, QLabel
ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ QApplication
ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
app = QApplication([])
ΠΡΠΎ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Qt: ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ²Π½ΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° QApplication
. ΠΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π²Π΅ΡΠΈ Π² Qt ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠΎΡΡΠΎΠΌΡ ΡΠ°ΠΊΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²Π°ΡΠ΅ΠΌ Qt ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
Π‘ΠΊΠΎΠ±ΠΊΠΈ []
Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΌΡ ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΡΠΊΠΎΠ±ΠΊΠΈ ΠΏΡΡΡΡΠΌΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ, ΡΡΠΎΠ±Ρ ΡΠ΅Π°Π»ΡΠ½ΠΎ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅:
label = QLabel('Hello World!')
ΠΠ°ΡΠ΅ΠΌ ΠΌΡ Π΄Π°Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²ΡΠ²Π΅ΡΡΠΈ ΡΡΠΎ Π½Π° ΡΠΊΡΠ°Π½:
label.show()
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΎΠΊΠΎΡΠΊΠΎ (Π΅Π³ΠΎ Π²ΠΈΠ΄ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²Π°ΡΠ΅ΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ):
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ°Π³ β ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ Qt ΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ Β«Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠΊΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ Π·Π°ΠΊΡΠΎΠ΅Ρ Π΅Π³ΠΎΒ». ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ ΡΠ°ΠΊ:
app.exec_()
ΠΡΠ»ΠΈ Π²ΡΠ΅ ΡΡΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ, ΠΊΠ°ΠΊ ΠΎΠΆΠΈΠ΄Π°Π»ΠΎΡΡ, ΡΠΎΠ³Π΄Π° ΡΡΠΏΠ΅Ρ! ΠΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Python ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Qt ΡΠ²ΠΎΠ΅ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ.
ΠΠΈΠ΄ΠΆΠ΅ΡΡ
ΠΡΠ΅, ΡΡΠΎ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
PyQt, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°ΠΌΠΈ. ΠΠ½ΠΎΠΏΠΊΠΈ, ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΎΠΊΠ½Π°, Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π°, ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΎΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅ β Π²ΡΠ΅ ΡΡΠΎ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ. ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ html
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ, Π²ΠΈΠ΄ΠΆΠ΅ΡΡ Π² Qt Π·Π°ΡΠ°ΡΡΡΡ Π²Π»ΠΎΠΆΠ΅Π½Ρ Π΄ΡΡΠ³ Π² Π΄ΡΡΠ³Π°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΠΊΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ, Π° ΠΊΠ½ΠΎΠΏΠΊΠ°, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, β ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
ΠΠ° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ Qt:
ΠΠ½ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π½ΠΈΠΆΠ΅ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΠ²Π΅ΡΡ Ρ Π²Π½ΠΈΠ· ΠΈ ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ:
ΠΡΡΡΠ΄Π° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°Π³ΡΡΠ·ΠΈΡΡ, Π΅ΡΠ»ΠΈ Ρ ΠΎΡΠΈΡΠ΅, ΠΊΠΎΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ°ΠΊΠΎΠ΅ ΠΎΠΊΠ½ΠΎ.
ΠΠ°ΠΊΠ΅ΡΡ
ΠΠ°ΠΊ ΠΈ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, Π²Π°Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π±ΡΠ΄Π΅Ρ ΡΠΎΡΡΠΎΡΡΡ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ². Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ Qt, ΠΊΠ°ΠΊ ΠΈΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ QVBoxLayout Π΄Π»Ρ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ²:
ΠΠΎΡ ΠΊΠΎΠ΄, ΡΠΎΠ·Π΄Π°ΡΡΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½Π½ΡΠΉ Π½Π° ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ΅ Π²ΡΡΠ΅:
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout app = QApplication([]) window = QWidget() layout = QVBoxLayout() layout.addWidget(QPushButton('Top')) layout.addWidget(QPushButton('Bottom')) window.setLayout(layout) window.show() app.exec_()
ΠΠ°ΠΊ ΠΈ ΡΠ°Π½Π΅Π΅, ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΡΠΊΠ·Π΅ΠΌΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° QApplication
. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΠ°ΠΌΠΎ ΠΎΠΊΠ½ΠΎ (window
). ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΄Π»Ρ Π½Π΅Π³ΠΎ ΡΠ°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΈΠΏ QWidget
,Β ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΏΡΠΎΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, Π° Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π½Π°ΠΌ Π·Π°Π΄Π°Π²Π°ΡΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΌΠ°ΠΊΠ΅Ρ (layout
) ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΊ Π½Π΅ΠΌΡ Π΄Π²Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ QPushButton
. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎΠΊΠ½Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎΡ ΠΌΠ°ΠΊΠ΅Ρ (ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅). ΠΠ°ΠΊ ΠΈ Π² Π½Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΌΡ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΠΌ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² .show ()
ΠΈ app.exec_ ()
.
ΠΠ΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π½ΡΡ
ΠΌΠ°ΠΊΠ΅ΡΠΎΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ QHBoxLayout
Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΡΠ΄. ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Ρ Π½ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Qt.
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΡΠΈΠ»ΠΈ
ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠΈΠ»ΡΠ½ΡΡ ΡΡΠΎΡΠΎΠ½ Qt ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΡΠΈΠ»Π΅ΠΉ. Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΎΠΏΠΈΡΠ°Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ .
ΠΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΡΡΠΈΠ»ΠΈ
Π‘Π°ΠΌΡΠΉ Π³ΡΡΠ±ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ β ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΡΡΠΈΠ»Ρ. ΠΡΠΏΠΎΠΌΠ½ΠΈΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ ΡΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΈ Π²ΡΡΠ΅:
ΠΠ΄Π΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠΈΠ»Ρ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Fusion
. ΠΡΠ»ΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈΠ»Ρ Windows
, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π§ΡΠΎΠ±Ρ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΈΠ»Ρ, Π½ΡΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ app.setStyle (β¦)
:
from PyQt5.QtWidgets import * app = QApplication([]) app.setStyle('Fusion') ...
ΠΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΡΠΈΠ»ΠΈ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ Π²Π°ΡΠ΅ΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, Π½ΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ½ΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ Β«FusionΒ», Β«WindowsΒ», Β«WindowsVistaΒ» (ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Windows) ΠΈ Β«MacintoshΒ» (ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Mac).
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΡΠ²Π΅ΡΠ°
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠ°Π²ΠΈΡΡΡ ΡΡΠΈΠ»Ρ, Π½ΠΎ Π²Ρ Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ ΡΠ²Π΅ΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΡΠ΅ΠΌΠ½ΡΡ ΡΠ΅ΠΌΡ), Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ QPalette
ΠΈ app.setPalette (...)
. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
from PyQt5.QtCore import Qt from PyQt5.QtGui import QPalette from PyQt5.QtWidgets import QApplication, QPushButton app = QApplication([]) app.setStyle('Fusion') palette = QPalette() palette.setColor(QPalette.ButtonText, Qt.red) app.setPalette(palette) button = QPushButton('Hello World') button.show() app.exec_()
ΠΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ ΡΠ²Π΅Ρ ΡΠ΅ΠΊΡΡΠ° Π² ΠΊΠ½ΠΎΠΏΠΊΠ°Ρ Π½Π° ΠΊΡΠ°ΡΠ½ΡΠΉ:
ΠΠ°ΠΊ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ΅ΠΌΠ½ΡΡ ΡΠ΅ΠΌΡ ΡΡΠΈΠ»Ρ Fusion, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π²ΠΎΡ Π·Π΄Π΅ΡΡ.
Π’Π°Π±Π»ΠΈΡΡ ΡΡΠΈΠ»Π΅ΠΉ
Π Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Π²ΡΡΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°Π±Π»ΠΈΡ ΡΡΠΈΠ»Π΅ΠΉ. ΠΡΠΎ Π°Π½Π°Π»ΠΎΠ³ CSS Π² Qt. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ:
from PyQt5.QtWidgets import QApplication, QPushButton app = QApplication([]) app.setStyleSheet("QPushButton { margin: 10ex; }") button = QPushButton('Hello World') button.show() app.exec_()
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠ°Π±Π»ΠΈΡΠ°Ρ ΡΡΠΈΠ»Π΅ΠΉ ΡΠΌΠΎΡΡΠΈΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Qt.
Π‘ΠΈΠ³Π½Π°Π»Ρ ΠΈ ΡΠ»ΠΎΡΡ
Qt ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ ΡΠΈΠ³Π½Π°Π»Π°ΠΌΠΈ (signals), ΡΡΠΎΠ±Ρ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΡΠ°ΠΊΠΈΠ΅ ΡΠΎΠ±ΡΡΠΈΡ, ΠΊΠ°ΠΊ Π½Π°ΠΆΠ°ΡΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΠ΅Ρ ΡΡΠΎ. ΠΠΎΠ΄ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΡ, ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° ΠΊΠΎΡΠΎΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΎΠΊΠ½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
from PyQt5.QtWidgets import * app = QApplication([]) button = QPushButton('Click') def on_button_clicked(): alert = QMessageBox() alert.setText('You clicked the button!') alert.exec_() button.clicked.connect(on_button_clicked) button.show() app.exec_()
Π‘ΡΡΠΎΠΊΠ° button.clicked
β ΡΡΠΎ ΡΠΈΠ³Π½Π°Π», ΠΌΠ΅ΡΠΎΠ΄ .connect (...)
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π° Π½Π΅ΠΌ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ ΡΠ»ΠΎΡ. ΠΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΠΈ ΡΠΈΠ³Π½Π°Π»Π°. Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π½Π°Ρ ΡΠ»ΠΎΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΎΠΊΠ½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
Π’Π΅ΡΠΌΠΈΠ½ Β«ΡΠ»ΠΎΡΒ» Π²Π°ΠΆΠ΅Π½ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Qt Π² C++, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π² C++ ΡΠ»ΠΎΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΎΠ±ΡΡΠ²Π»Π΅Π½Ρ ΠΎΡΠΎΠ±ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ. ΠΠ΄Π½Π°ΠΊΠΎ Π² Python Π»ΡΠ±Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ»ΠΎΡΠΎΠΌ β ΠΌΡ Π²ΠΈΠ΄Π΅Π»ΠΈ ΡΡΠΎ Π²ΡΡΠ΅. ΠΠΎΡΡΠΎΠΌΡ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ»ΠΎΡΠ°ΠΌΠΈ ΠΈ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π΄Π»Ρ Π½Π°Ρ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ.
Π‘ΠΈΠ³Π½Π°Π»Ρ Π² Qt ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΠΎΠ²ΡΠ΅ΠΌΠ΅ΡΡΠ½ΠΎ. Π, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠΈΠ³Π½Π°Π»Ρ. ΠΠΎ ΡΡΠΎ Π²ΡΡ ΠΎΠ΄ΠΈΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π°.
ΠΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
Π’Π΅ΠΏΠ΅ΡΡ Ρ Π²Π°Ρ Π΅ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π·Π½Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ GUI, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ Π½Π° Π²Π²ΠΎΠ΄ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΠΎΠΏΡΡΡΠΈΠΌ, Π²Ρ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅. ΠΠ°ΠΊ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΅Π³ΠΎ Π΄ΡΡΠ³ΠΈΠΌ Π»ΡΠ΄ΡΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠ½ΠΈ ΡΠΎΠΆΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π΅Π³ΠΎ Π·Π°ΠΏΡΡΡΠΈΡΡ?
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΏΡΠΎΡΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Python ΠΈ PyQt, ΠΊΠ°ΠΊ ΠΌΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ Π²ΡΡΠ΅, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΈΠΌ ΡΠ²ΠΎΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄. ΠΠΎ ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΡΠΎΠΌΠΈΡΠ΅Π»ΡΠ½ΠΎ (ΠΈ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ΠΏΡΠ°ΠΊΡΠΈΡΠ½ΠΎ). ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π’ΠΎ Π΅ΡΡΡ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ», ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΡΡΠ³ΠΈΠ΅ Π»ΡΠ΄ΠΈ ΠΌΠΎΠ³ΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π² ΡΠ²ΠΎΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , Π½Π΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Ρ Π½ΠΈΡΠ΅Π³ΠΎ.
Π ΠΌΠΈΡΠ΅ Python ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠ΅Π²ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π² Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΠΉ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π·Π°ΠΌΠΎΡΠ°ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ (freezing). ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΡΠ΅ΡΠ°ΡΡΠΈΡ
ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ PyInstaller
, py2exe
, cx_Freeze
, bbfreze
, py2app
ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅, Π·Π°ΠΌΠΎΡΠ°ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ PyQt Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ»ΠΎ Π½Π° ΡΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ.
ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ fbs
, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ PyQt. ΠΠ»Ρ Π΅Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
pip install fbs
ΠΠ°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
fbs startproject
ΠΠ°ΠΌ Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π²Π²Π΅ΡΡΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ:
ΠΠΎΠ³Π΄Π° Π²Ρ Π²Π²Π΅Π΄Π΅ΡΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ run
, Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡΠΊΡΡΡΡΡΡ ΠΏΡΡΡΠΎΠ΅ ΠΎΠΊΠ½ΠΎ:
ΠΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PyQt5, ΡΠ°ΠΊΠΎΠ΅ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΡΠ΅, ΡΡΠΎ ΠΌΡ Π²ΠΈΠ΄Π΅Π»ΠΈ ΡΠ°Π½ΡΡΠ΅. ΠΠ³ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² src/main/python/main.py Π² Π²Π°ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠ΅ΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅. ΠΠΎ Π²ΠΎΡ ΡΡΠΎ ΡΠ°ΠΌΠΎΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅: ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ fbs, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ Π΅Π³ΠΎ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ»!
fbs freeze
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΈ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΠΉ Π΄Π²ΠΎΠΈΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» Π² ΠΏΠ°ΠΏΠΊΡ /MyApp/
Π²Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π΅Π³ΠΎ ΡΠ²ΠΎΠΈΠΌ Π΄ΡΡΠ·ΡΡΠΌ (Ρ ΡΠΎΠΉ ΠΆΠ΅ ΠΠ‘, ΡΡΠΎ ΠΈ Π²Π°ΡΠ°), ΠΈ ΠΎΠ½ΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΠΌΠΎΠ³ΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅!
ΠΠΎΠ½ΡΡ: ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊ
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° fbs ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ fbs installer
:
(ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Π² Windows, Π²Π°ΠΌ ΡΠ½Π°ΡΠ°Π»Π° Π½ΡΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ NSIS ΠΈ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ ΠΏΡΡΡ ΠΊ Π½Π΅ΠΌΡ Π² ΡΠ²ΠΎΠΉ PATH.)
ΠΠ° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ fbs
ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ Π΅Π΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
ΠΡΠΎΠ³ΠΈ
ΠΡΠ»ΠΈ Π²Ρ Π΄ΠΎΡΠ»ΠΈ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΡΠ° β ΠΏΡΠΈΠΌΠΈΡΠ΅ Π½Π°ΡΠΈ ΠΏΠΎΠ·Π΄ΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΠ°Π΄Π΅Π΅ΠΌΡΡ, ΡΠ΅ΠΏΠ΅ΡΡ Ρ Π²Π°Ρ Π΅ΡΡΡ Ρ ΠΎΡΠΎΡΠ΅Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Python ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ PyQt (ΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π΅Π΅ ΡΠ°ΡΡΠΈ). ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π°Π²ΡΠΎΠ½ΠΎΠΌΠ½ΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊΠΈ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ fbs.
PyQt5: ΠΏΠ΅ΡΠ²ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ | Python 3 Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ ΠΈ ΡΠ°ΠΉΠ½ΠΈΠΊΠΎΠ²
Π― Π½Π°ΡΠΈΠ½Π°Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΠ΅ΡΠΈΠΈ ΡΡΠΎΠΊΠΎΠ² PyQt5 ΠΎΡ zetcode.
PyQt5 — ΡΡΠΎ Π½Π°Π±ΠΎΡ Python Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π½Π° Π±Π°Π·Π΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ Qt5 ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Digia.
ΠΠ½ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΄Π»Ρ Python 2.x ΠΈ 3.x. ΠΡΠΎΡ ΡΡΠ΅Π±Π½ΠΈΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Python 3.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Qt ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΌΠΎΡΠ½ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ GUI (Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ).
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ PyQt5 Π½Π° Windows ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ PyQt5 Π½Π° linux-ΡΠΈΡΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΠ° ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²:
sudo apt-get install python3-pyqt5 pyqt5-dev-tools
PyQt5 ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π²ΠΈΠ΄Π΅ Π½Π°Π±ΠΎΡΠ° python-ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ. ΠΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»Π΅Π΅ 620 ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ 6000 ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ².
ΠΡΠΎ ΠΌΡΠ»ΡΡΠΈΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° Π²ΡΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Unix, Windows ΠΈ Mac OS.
ΠΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ
ΠΡΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠΉ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΎΠΊΠ½ΠΎ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΡΡΠΈΠΌ ΠΎΠΊΠ½ΠΎΠΌ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ, ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΡ Π΅Π³ΠΎ ΠΈΠ»ΠΈ ΡΠ²Π΅ΡΠ½ΡΡΡ. ΠΡΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠΌΠ° ΠΊΠΎΠ΄Π°. ΠΠ΄Π½Π°ΠΊΠΎ ΠΊΡΠΎ-ΡΠΎ ΡΠΆΠ΅ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π» ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π΄ΠΎ Π½Π°Ρ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΡΡΡ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΈΡΠ°ΡΡ Π΅Ρ ΡΠ½ΠΎΠ²Π°.
PyQt5 ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ. ΠΡΠ»ΠΈ Π±Ρ ΠΌΡ ΠΏΠΈΡΠ°Π»ΠΈ ΡΡΠΎ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π° Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠ³ Π±Ρ ΡΠ°ΡΡΡΠ½ΡΡΡΡΡ Π½Π° ΡΠΎΡΠ½ΠΈ ΡΡΡΠΎΠΊ:
#!/usr/bin/python3 # -*- coding: utf-8 -*- import sys from PyQt5.QtWidgets import QApplication, QWidget if __name__ == '__main__': app = QApplication(sys.argv) w = QWidget() w.resize(250, 150) w.move(300, 300) w.setWindowTitle('Simple') w.show() sys.exit(app.exec_())
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΊΠΎΠ΄ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π½Π° ΡΠΊΡΠ°Π½Π΅.
import sys from PyQt5.QtWidgets import QApplication, QWidget
ΠΠ΄Π΅ΡΡ ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΈΠΌΠΏΠΎΡΡΡ. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π² PyQt5.QtWidgets.
app = QApplication(sys.argv)
ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PyQt5 Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ QApplication). ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ sys.argv ΡΡΠΎ ΡΠΏΠΈΡΠΎΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. Π‘ΠΊΡΠΈΠΏΡΡ Python ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΡΠΎ ΡΠΏΠΎΡΠΎΠ±, ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΠΏΡΡΠΊ Π½Π°ΡΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π².
w = QWidget()
ΠΠΈΠ΄ΠΆΠ΅Ρ QWidget ΡΡΠΎ Π±Π°Π·ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² PyQt5. ΠΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ QWidget. ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ. ΠΠΈΠ΄ΠΆΠ΅Ρ Π±Π΅Π· ΡΠΎΠ΄ΠΈΡΠ΅Π»Π΅ΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΠΊΠ½ΠΎ.
w.resize(250, 150)
ΠΠ΅ΡΠΎΠ΄ resize() ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°. ΠΠ½ ΡΡΠ°Π» 250 ΠΏΠΈΠΊΡΠ΅Π»Π΅ΠΉ Π² ΡΠΈΡΠΈΠ½Ρ ΠΈ 150 Π² Π²ΡΡΠΎΡΡ.
w.move(300, 300)
ΠΠ΅ΡΠΎΠ΄ move() Π΄Π²ΠΈΠ³Π°Π΅Ρ Π²ΠΈΠ΄ΠΆΠ΅Ρ Π½Π° ΡΠΊΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ x=300, y=300.
w.setWindowTitle('Simple')
ΠΠ΄Π΅ΡΡ ΠΌΡ Π·Π°Π΄Π°ΡΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π½Π°ΡΠ΅Π³ΠΎ ΠΎΠΊΠ½Π°.
w.show()
ΠΠ΅ΡΠΎΠ΄ show() ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π²ΠΈΠ΄ΠΆΠ΅Ρ Π½Π° ΡΠΊΡΠ°Π½Π΅. ΠΠΈΠ΄ΠΆΠ΅Ρ ΡΠ½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°ΡΡΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ, ΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΌ (Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° show) ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π½Π° ΡΠΊΡΠ°Π½Π΅.
sys.exit(app.exec_())
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ ΠΏΠΎΠΏΠ°Π΄Π°Π΅ΠΌ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΈΠΊΠ» ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠΎΠ±ΡΡΠΈΠΉ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΡΡΠΎΠΉ ΡΠΎΡΠΊΠΈ. ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΈΠΊΠ» ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΡΠΎΠ±ΡΡΠΈΡ ΠΎΡ ΠΎΠΊΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΡ ΠΏΠΎ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΈΠΊΠ» Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ, Π΅ΡΠ»ΠΈ ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ exit() ΠΈΠ»ΠΈ Π³Π»Π°Π²Π½ΡΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½. ΠΠ΅ΡΠΎΠ΄ sys.exit() Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ ΡΠΈΡΡΡΠΉ Π²ΡΡ ΠΎΠ΄. ΠΡ Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΡΠΎΠΈΠ½ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½Ρ, ΠΊΠ°ΠΊ Π·Π°Π²Π΅ΡΡΠΈΠ»ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠΠ΅ΡΠΎΠ΄ exec_ () ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΠ΅. ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ exec ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ Π² python 2.
ΠΠ½Π°ΡΠΎΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠ½Π°ΡΠΎΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ — Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² Π²Π΅ΡΡ Π½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡΠ³Π»Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Π² PyQt5. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΠΎΠ²ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ.
ΠΠ΅ Π·Π°Π±ΡΠ΄ΡΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΠ°ΡΠ°ΡΡ ΠΊΠ°ΠΊΡΡ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΈΠΊΠΎΠ½ΠΊΡ π
#!/usr/bin/python3 # -*- coding: utf-8 -*- import sys from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtGui import QIcon class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(300, 300, 300, 220) self.setWindowTitle('Icon') self.setWindowIcon(QIcon('web.png')) self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
ΠΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π±ΡΠ» Π½Π°ΠΏΠΈΡΠ°Π½ Π² ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΠΎΠΌ ΡΡΠΈΠ»Π΅. Π―Π·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΡΠΉ, ΡΠ°ΠΊ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΡΠΈΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² PyQt5 ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΠΠ.
class Example(QWidget): def __init__(self): super().__init__() ...
Π’ΡΠΈ Π²Π°ΠΆΠ½ΡΠ΅ Π²Π΅ΡΠΈ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠΎ ΠΊΠ»Π°ΡΡΡ, Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ. ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ Example. ΠΠ»Π°ΡΡ Example Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΎΡ ΠΊΠ»Π°ΡΡΠ° QWidget. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ Π΄Π²Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°: ΠΏΠ΅ΡΠ²ΡΠΉ Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠ° Example ΠΈ Π²ΡΠΎΡΠΎΠΉ Π΄Π»Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. Π€ΡΠ½ΠΊΡΠΈΡ super() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ Example Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ, ΠΈ ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ.
self.initUI()
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ GUI Π΄Π΅Π»Π΅Π³ΠΈΡΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ initUI().
self.setGeometry(300, 300, 300, 220) self.setWindowTitle('Icon') self.setWindowIcon(QIcon('web.png'))
ΠΡΠ΅ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° Π±ΡΠ»ΠΈ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Ρ ΠΎΡ ΠΊΠ»Π°ΡΡΠ° QWidget.
ΠΠ΅ΡΠΎΠ΄ setGeometry() Π΄Π΅Π»Π°Π΅Ρ Π΄Π²Π΅ Π²Π΅ΡΠΈ: ΠΏΠΎΠΌΠ΅ΡΠ°Π΅Ρ ΠΎΠΊΠ½ΠΎ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ. ΠΠ΅ΡΠ²ΡΠ΅ Π΄Π²Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° Ρ ΠΈ Ρ — ΡΡΠΎ ΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΎΠΊΠ½Π°. Π’ΡΠ΅ΡΠΈΠΉ — ΡΠΈΡΠΈΠ½Π°, ΠΈ ΡΠ΅ΡΠ²Π΅ΡΡΡΠΉ — Π²ΡΡΠΎΡΠ° ΠΎΠΊΠ½Π°. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΎΠ½ ΡΠΎΡΠ΅ΡΠ°Π΅Ρ Π² ΡΠ΅Π±Π΅ ΠΌΠ΅ΡΠΎΠ΄Ρ resize() ΠΈ move() Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅.
ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΠΈΠΊΠΎΠ½ΠΊΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π§ΡΠΎΠ±Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ, ΠΌΡ ΡΠΎΠ·Π΄Π°Π»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡ QIcon. QIcon ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΏΡΡΡ ΠΊ Π½Π°ΡΠ΅ΠΉ ΠΈΠΊΠΎΠ½ΠΊΠ΅ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.
if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
Π‘ΠΎΠ·Π΄Π°ΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΡ application ΠΈ Example. ΠΠ°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΈΠΊΠ».
ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΈΠ· Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ².
#!/usr/bin/python3 # -*- coding: utf-8 -*- import sys from PyQt5.QtWidgets import (QWidget, QToolTip, QPushButton, QApplication) from PyQt5.QtGui import QFont class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): QToolTip.setFont(QFont('SansSerif', 10)) self.setToolTip('This is a <b>QWidget</b> widget') btn = QPushButton('Button', self) btn.setToolTip('This is a <b>QPushButton</b> widget') btn.resize(btn.sizeHint()) btn.move(50, 50) self.setGeometry(300, 300, 300, 200) self.setWindowTitle('Tooltips') self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ Π΄Π»Ρ Π΄Π²ΡΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠ² PyQt5.
QToolTip.setFont(QFont('SansSerif', 10))
ΠΡΠΎΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ ΡΡΠΈΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠΈΡΡ 10px SansSerif.
self.setToolTip('This is a <b>QWidget</b> widget')
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ, ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΌΠ΅ΡΠΎΠ΄ setToolTip(). ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ°.
btn = QPushButton('Button', self) btn.setToolTip('This is a <b>QPushButton</b> widget')
ΠΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ Π²ΠΈΠ΄ΠΆΠ΅Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ Π΄Π»Ρ Π½Π΅Π³ΠΎ.
btn.resize(btn.sizeHint()) btn.move(50, 50)
ΠΠ΅Π½ΡΠ΅ΠΌ ΡΠ°Π·ΠΌΠ΅Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΠΌ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠΊΠ½Π°. ΠΠ΅ΡΠΎΠ΄ sizeHint() Π΄Π°Π΅Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π΄Π»Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ.
ΠΠ°ΠΊΡΡΡΠΈΠ΅ ΠΎΠΊΠ½Π°
ΠΡΠ΅Π²ΠΈΠ΄Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π·Π°ΠΊΡΡΡΡ ΠΎΠΊΠ½ΠΎ, ΡΡΠΎ Π½Π°ΠΆΠ°ΡΡ Π½Π° ΠΊΡΠ΅ΡΡΠΈΠΊ. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ Π·Π°ΠΊΡΡΡΡ Π½Π°ΡΠ΅ ΠΎΠΊΠ½ΠΎ. ΠΡ ΠΊΡΠ°ΡΠΊΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΈΠ³Π½Π°Π»Ρ ΠΈ ΡΠ»ΠΎΡΡ.
#!/usr/bin/python3 # -*- coding: utf-8 -*- import sys from PyQt5.QtWidgets import QWidget, QPushButton, QApplication from PyQt5.QtCore import QCoreApplication class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): qbtn = QPushButton('Quit', self) qbtn.clicked.connect(QCoreApplication.instance().quit) qbtn.resize(qbtn.sizeHint()) qbtn.move(50, 50) self.setGeometry(300, 300, 250, 150) self.setWindowTitle('Quit button') self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ Π²ΡΡ ΠΎΠ΄Π°. ΠΠΎΡΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π²Π΅ΡΡΠ°Π΅ΡΡΡ.
qbtn = QPushButton('Quit', self)
ΠΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΡ. ΠΠ½ΠΎΠΏΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° QPushButton. ΠΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° — Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠΡΠΎΡΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ. Π ΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠΎΠΌ Example, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΎΡ QWidget.
qbtn.clicked.connect(QCoreApplication.instance().quit)
Π‘ΠΈΡΡΠ΅ΠΌΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ Π² PyQt5 ΠΏΠΎΡΡΡΠΎΠ΅Π½Π° Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ΅ ΡΠΈΠ³Π½Π°Π»ΠΎΠ² ΠΈ ΡΠ»ΠΎΡΠΎΠ². ΠΡΠ»ΠΈ ΠΌΡ Π½Π°ΠΆΠΌΠ΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ, Π²ΡΠ·ΠΎΠ²Π΅ΡΡΡ ΡΠΈΠ³Π½Π°Π» «Π½Π°ΠΆΠ°ΡΠΈΠ΅». Π‘Π»ΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ»ΠΎΡ Qt ΠΈΠ»ΠΈ Π»ΡΠ±Π°Ρ Python ΡΡΠ½ΠΊΡΠΈΡ.
QCoreApplication ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π³Π»Π°Π²Π½ΡΠΉ ΡΠΈΠΊΠ» ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ; ΠΎΠ½ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΈ Π΄ΠΈΡΠΏΠ΅ΡΡΠ΅ΡΠΈΠ·ΠΈΡΡΠ΅Ρ Π²ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ. ΠΠ΅ΡΠΎΠ΄ instance() Π΄Π°Π΅Ρ Π½Π°ΠΌ Π΅Π³ΠΎ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ QCoreApplication ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ Ρ QApplication. Π‘ΠΈΠ³Π½Π°Π» «Π½Π°ΠΆΠ°ΡΠΈΠ΅» ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ ΠΊ ΠΌΠ΅ΡΠΎΠ΄Ρ quit(), ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ: ΠΎΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ ΠΈ ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ°. ΠΡΠΏΡΠ°Π²ΠΈΡΠ΅Π»Ρ ΠΊΠ½ΠΎΠΏΠΊΠ°, ΠΏΡΠΈΠ΅ΠΌΠ½ΠΈΠΊ — ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Message Box
ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΌΡ Π½Π°ΠΆΠΌΠ΅ΠΌ Π½Π° ΠΊΡΠ΅ΡΡΠΈΠΊ, QWidget Π·Π°ΠΊΡΡΠ²Π°Π΅ΡΡΡ. ΠΠ½ΠΎΠ³Π΄Π° ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΡΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Ρ Π½Π°Ρ Π΅ΡΡΡ ΠΎΡΠΊΡΡΡΡΠΉ ΡΠ°ΠΉΠ», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ ΡΠ΄Π΅Π»Π°Π»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ. ΠΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΎΠΊΠ½ΠΎ Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
#!/usr/bin/python3 # -*- coding: utf-8 -*- import sys from PyQt5.QtWidgets import QWidget, QMessageBox, QApplication class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(300, 300, 250, 150) self.setWindowTitle('Message box') self.show() def closeEvent(self, event): reply = QMessageBox.question(self, 'Message', "Are you sure to quit?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if reply == QMessageBox.Yes: event.accept() else: event.ignore() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
ΠΡΠ»ΠΈ ΠΌΡ Π·Π°ΠΊΡΡΠ²Π°Π΅ΠΌ QWidget, Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ QCloseEvent. Π§ΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ°, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ closeEvent().
reply = QMessageBox.question(self, 'Message', "Are you sure to quit?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
ΠΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ ΠΎΠΊΠ½ΠΎ Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Ρ Π΄Π²ΡΠΌΡ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ: Yes ΠΈ No. ΠΠ΅ΡΠ²Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΎΠΊΠ½Π°. ΠΡΠΎΡΠ°Ρ ΡΡΡΠΎΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅. Π’ΡΠ΅ΡΠΈΠΉ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ, ΠΏΠΎΡΠ²Π»ΡΡΡΠΈΡ ΡΡ Π² Π΄ΠΈΠ°Π»ΠΎΠ³Π΅. ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ — ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. ΠΡΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ°, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΡΠΎΠΊΡΡ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ reply.
if reply == QtGui.QMessageBox.Yes: event.accept() else: event.ignore()
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. ΠΡΠ»ΠΈ ΠΌΡ Π½Π°ΠΆΠΌΠ΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ Yes, ΠΌΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ ΡΠΎΠ±ΡΡΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π·Π°ΠΊΡΡΡΠΈΡ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ±ΡΡΠΈΠ΅ Π·Π°ΠΊΡΡΡΠΈΡ.
Π¦Π΅Π½ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΊΠ½Π° Π½Π° ΡΠΊΡΠ°Π½Π΅
Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΊΡΠΈΠΏΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΅Π½ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΊΠ½ΠΎ Π½Π° ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΡΡΠΎΠ»Π΅.
#!/usr/bin/python3 # -*- coding: utf-8 -*- import sys from PyQt5.QtWidgets import QWidget, QDesktopWidget, QApplication class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.resize(250, 150) self.center() self.setWindowTitle('Center') self.show() def center(self): qr = self.frameGeometry() cp = QDesktopWidget().availableGeometry().center() qr.moveCenter(cp) self.move(qr.topLeft()) if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
ΠΠ»Π°ΡΡ QtWidgets.QDesktopWidget ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°Ρ ΡΠΊΡΠ°Π½Π°.
self.center()
ΠΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π½ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠΊΠ½ΠΎ, Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² Π½Π°ΠΌΠΈ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅ center().
qr = self.frameGeometry()
ΠΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. ΠΡΠΎ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ Π»ΡΠ±ΡΠ΅ ΡΠ°ΠΌΠΊΠΈ ΠΎΠΊΠ½Π°.
cp = QDesktopWidget().availableGeometry().center()
ΠΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½Π° Π½Π°ΡΠ΅Π³ΠΎ ΠΌΠΎΠ½ΠΈΡΠΎΡΠ°. Π Ρ ΡΡΠΈΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΡ ΡΠΎΡΠΊΡ.
qr.moveCenter(cp)
ΠΠ°Ρ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊ ΡΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠΈΡΠΈΠ½Ρ ΠΈ Π²ΡΡΠΎΡΡ. Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ ΡΠ΅Π½ΡΡ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° Π² ΡΠ΅Π½ΡΡΠ΅ ΡΠΊΡΠ°Π½Π°. Π Π°Π·ΠΌΠ΅Ρ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ.
self.move(qr.topLeft())
ΠΡ Π΄Π²ΠΈΠ³Π°Π΅ΠΌ Π²Π΅ΡΡ Π½ΠΈΠΉ Π»Π΅Π²ΡΠΉ ΡΠ³ΠΎΠ» ΠΎΠΊΠ½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Π²Π΅ΡΡ Π½ΠΈΠΉ Π»Π΅Π²ΡΠΉ ΡΠ³ΠΎΠ» ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ° qr, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΠ΅Π½ΡΡΠΈΡΡΡ ΠΎΠΊΠ½ΠΎ Π½Π° Π½Π°ΡΠ΅ΠΌ ΡΠΊΡΠ°Π½Π΅.
Π ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΡΠΎΠΊΠ° PyQt5 ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠ½ΠΎΠ²Ρ.
python 3.x — Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° PyQt5 Designer Π½Π° windows
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ°
- ΠΠΊΠΎΠ»ΠΎ
ΠΡΠΎΠ΄ΡΠΊΡΡ
- ΠΠ»Ρ ΠΊΠΎΠΌΠ°Π½Π΄
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ°
ΠΠ±ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΈ ΠΎΡΠ²Π΅ΡΡΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ° Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄
ΠΠ΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈ Π΄Π΅Π»ΡΡΡΡ ΡΠ°ΡΡΠ½ΡΠΌΠΈ Π·Π½Π°Π½ΠΈΡΠΌΠΈ Ρ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈΠΠ°ΠΊΠ°Π½ΡΠΈΠΈ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½ΠΈΠΌ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠ°ΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠ°Π’Π°Π»Π°Π½Ρ
ΠΠ°Π½ΠΈΠΌΠ°ΠΉΡΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠΉ Π±ΡΠ΅Π½Π΄ ΡΠ°Π±ΠΎΡΠΎΠ΄Π°ΡΠ΅Π»ΡΠ Π΅ΠΊΠ»Π°ΠΌΠ°
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ ΡΠΎ Π²ΡΠ΅Π³ΠΎ ΠΌΠΈΡΠ°
.
python — ΠΊΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ PyQt4 Π² Windows?
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ°
- ΠΠΊΠΎΠ»ΠΎ
ΠΡΠΎΠ΄ΡΠΊΡΡ
- ΠΠ»Ρ ΠΊΠΎΠΌΠ°Π½Π΄
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ°
ΠΠ±ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΈ ΠΎΡΠ²Π΅ΡΡΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ° Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄
ΠΠ΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈ Π΄Π΅Π»ΡΡΡΡ ΡΠ°ΡΡΠ½ΡΠΌΠΈ Π·Π½Π°Π½ΠΈΡΠΌΠΈ Ρ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈΠΠ°ΠΊΠ°Π½ΡΠΈΠΈ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½ΠΈΠΌ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠ°ΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠ°Π’Π°Π»Π°Π½Ρ
ΠΠ°Π½ΠΈΠΌΠ°ΠΉΡΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠΉ Π±ΡΠ΅Π½Π΄ ΡΠ°Π±ΠΎΡΠΎΠ΄Π°ΡΠ΅Π»ΡΠ Π΅ΠΊΠ»Π°ΠΌΠ°
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ ΡΠΎ Π²ΡΠ΅Π³ΠΎ ΠΌΠΈΡΠ°- Π ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ
ΠΠ°Π³ΡΡΠ·ΠΊΠ°β¦
.
python — ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° PyQt5 Π² Windows Ρ ΠΏΠΎΠΌΠΎΡΡΡ pip
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ°
- ΠΠΊΠΎΠ»ΠΎ
ΠΡΠΎΠ΄ΡΠΊΡΡ
- ΠΠ»Ρ ΠΊΠΎΠΌΠ°Π½Π΄
ΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ°
ΠΠ±ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ ΠΈ ΠΎΡΠ²Π΅ΡΡΠΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΡΠ΅ΠΊΠ° Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄
ΠΠ΄Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈ Π΄Π΅Π»ΡΡΡΡ ΡΠ°ΡΡΠ½ΡΠΌΠΈ Π·Π½Π°Π½ΠΈΡΠΌΠΈ Ρ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈΠΠ°ΠΊΠ°Π½ΡΠΈΠΈ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ Π½ΠΈΠΌ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΊΠ°ΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠ°Π’Π°Π»Π°Π½Ρ
ΠΠ°Π½ΠΈΠΌΠ°ΠΉΡΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ²ΠΎΠΉ Π±ΡΠ΅Π½Π΄ ΡΠ°Π±ΠΎΡΠΎΠ΄Π°ΡΠ΅Π»ΡΠ Π΅ΠΊΠ»Π°ΠΌΠ°
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ΡΡ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ ΡΠΎ Π²ΡΠ΅Π³ΠΎ ΠΌΠΈΡΠ°- Π ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ
.
ΠΠ°ΠΊ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ PyQt 4.3 ΠΈ Python 2.5 Π² Windows
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ 1/10/2008: PyQt Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΏΡΠΎΡΡΠΈΠ» ΠΏΡΠΎΡΠ΅ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΠ» Π²ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ΅ Π² ΠΎΠ΄Π½ΠΎΠΌ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊΠ΅, Π²ΠΊΠ»ΡΡΠ°Ρ Π²Π΅ΡΡΠΈΡ QT 4.3 Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. Π’Π΅ΠΏΠ΅ΡΡ Π²ΡΠ΅, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΡΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Python ΠΈ ΠΏΠ°ΠΊΠ΅Ρ PyQt. Π‘ΡΠ°Π·Ρ ΠΆΠ΅ ΡΠ»Π΅Π΄ΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΡΠ°Π³ΠΈ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ ΡΡΠ°ΡΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ.
ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ 01.07.2008: ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π΄Π»Ρ PyQt 4.4.2
ΠΠΠΠ«Π ΠΠΠ‘Π’Π Π£ΠΠ¦ΠΠ
ΠΠΎΡ ΡΠ°Π³ΠΈ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ Β«Hello WorldΒ» Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ PyQt 4.4 ΠΈ Python 2.5 Π² Windows.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Python 2.5
- ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° http://www.python.org/download/ ΠΈ ΡΠ΅Π»ΠΊΠ½ΠΈΡΠ΅ Β«Python 2.5.x Windows installerΒ»
- Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊ Windows
- ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈ ΠΏΡΠΈΠΌΠΈΡΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΠ°ΠΊΠ΅Ρ PyQt 4.4 (Π²ΠΊΠ»ΡΡΠ°Ρ QT 4.4)
- ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° http://www.riverbankcomputing.co.uk/software/pyqt/download ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Β«PyQt-Py2.5-gpl-4.4.2. -1.exe «ΡΡΡΠ»ΠΊΠ°.
- Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΠ°ΠΉΠ».
- ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ°Π³ΠΈ ΠΈ ΠΏΡΠΈΠΌΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΠ°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Β«Hello WorldΒ»
- ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² Β«ΠΡΡΠΊΒ» -> Β«ΠΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡΒ» -> Β«Python 2.5Β» -> Β«IDLE (Python GUI)Β»
- ΠΡΠΊΡΠΎΠΉΡΠ΅ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ (Β«Π€Π°ΠΉΠ»Β» — > Β«ΠΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎΒ»)
- ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π²Π½ΡΡΡΠΈ ΠΈ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅:
import sys ΠΈΠ· ΠΈΠΌΠΏΠΎΡΡΠ° PyQt4.QtGui * app = QApplication (sys.argv) button = QPushButton ("Hello World", ΠΠ΅Ρ) button.show () app.exec_ ()
- ΠΠ°ΠΆΠΌΠΈΡΠ΅ Β«F5Β» Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ°.ΠΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ ΠΎΠΊΠ½ΠΎ Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ.
ΠΠ»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² Β«ΠΡΡΠΊΒ» -> Β«ΠΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡΒ» -> Β«PyQt GPL v4.4.2 Π΄Π»Ρ Python v2.5Β»> Β«ΠΡΠΈΠΌΠ΅ΡΡΒ»> Β«ΠΡΡΠΎΡΠ½ΠΈΠΊ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² PyQtΒ» (Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎ ΡΠ°ΠΊΠΆΠ΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ C: \ Python25 \ PyQt4 \ examples
.) ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π·Π°Π³Π»ΡΠ½ΠΈΡΠ΅ Π² ΠΊΠ°ΡΠ°Π»ΠΎΠ³ «tutorial».
Π‘Π’ΠΠ Π«Π ΠΠΠ‘Π’Π Π£ΠΠ¦ΠΠ
ΠΠΎΡ ΡΠ°Π³ΠΈ ΠΏΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ Β«Hello WorldΒ» Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ PyQt 4.1.1, Python 2.5 ΠΈ QT 4.2.2 ΠΡΠΏΡΡΠΊ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ (GPL) Π² Windows XP Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ MinGW.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Python 2.5
- ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ http://www.python.org/download/ ΠΈ Π½Π°ΠΆΠΌΠΈΡΠ΅ Β«Python 2.5 Windows installerΒ»
- Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΡΠΈΠΊ Windows
- ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈ ΠΏΡΠΈΠΌΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ MinGW
- ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° http://www.mingw.org/download.shtml
- ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ bin ΠΈΠ· ΡΠ°Π·Π΄Π΅Π»Π° Β«Π’Π΅ΠΊΡΡΠΈΠΉΒ»:
- gcc-core-3.4.2-20040916-1.tar.gz
- gcc-g ++ — 3.4.2-20040916-1.tar.gz
- mingw-runtime-3.9.tar.gz
- w32api-3.6.tar.gz
- Π Π°ΡΠΏΠ°ΠΊΡΠΉΡΠ΅ Π²ΡΠ΅ ΡΠ°ΠΉΠ»Ρ Π² Β«c: \ mingwΒ»
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ QT 4.2.2 Open Source edition
- ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΏΠΎ Π°Π΄ΡΠ΅ΡΡ http://www.trolltech.com/developer/downloads/qt/windows . ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΠ΅Π»ΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ. ΠΡΠΎ * Π½Π΅ * ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Π°ΠΌ Π½ΡΠΆΠ΅Π½.
- ΠΠΎΠ΄ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ Β«ΠΠ°Π³ΡΡΠ·ΠΈΡΡΒ» Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Β«http: // ftp.iasi.roedu.net/mirrors/ftp.trolltech.com/qt/source/qt-win-opensource-4.2.2-mingw.exe «.
- ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈ ΠΏΡΠΈΠΌΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
- ΠΠΎΠ³Π΄Π° Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ MinGW, ΠΎΡΡΠ°Π²ΡΡΠ΅ ΠΏΠΎΠ»Π΅ Β«ΠΠ°Π³ΡΡΠ·ΠΈΡΡ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ MinGWΒ» ΡΠ½ΡΡΡΠΌ ΠΈ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π΄Π»Ρ ΠΌΠ΅ΡΡΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ MinGW Π·Π°Π΄Π°Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Β«c: \ mingwΒ». ΠΠ°ΠΆΠΌΠΈΡΠ΅ Β«Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΒ».
- ΠΡ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΠΉΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» «w32api.h». ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²Π΅ΡΡΠΈΡ 3.2 Ρ ΡΠ°ΠΉΡΠ° mingw, Π½ΠΎ Π²Π΅ΡΡΠΈΡ 3.6 Π²Π΅ΡΡΠΈΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. ΠΠ°ΠΆΠΌΠΈΡΠ΅ Β«ΠΠ°Β», ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΡ. ΠΠ°ΠΆΠΌΠΈΡΠ΅ Β«ΠΠΎΡΠΎΠ²ΠΎΒ», ΡΡΠΎΠ±Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΡ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ PyQt 4.1.1
- ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° http://www.riverbankcomputing.co.uk/pyqt/download.php ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Β«PyQt-gpl-4.1.1-Py2.5-Qt4.2.2. exe «ΡΡΡΠ»ΠΊΠ°.
- Π‘ΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΡΠ°ΠΉΠ».
- ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ°Π³ΠΈ ΠΈ ΠΏΡΠΈΠΌΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄Ρ
- Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ Β«ΠΠΎΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΒ» ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Β«Π‘Π²ΠΎΠΉΡΡΠ²Π°Β»
- Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ Π²ΠΊΠ»Π°Π΄ΠΊΡ Β«ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΒ»
- Π©Π΅Π»ΠΊΠ½ΠΈΡΠ΅ Β«ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄ΡΒ»
- ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅:
- ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ QTDIR — «c: \ qt \ 4.2.2 «
- ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ QMAKESPEC -» win32-g ++ «
- ΡΠΈΡΡΠ΅ΠΌΠ½Π°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ PATH — include» C: \ Qt \ 4.2.2 \ bin; C: \ Python25 \ Scripts; C: \ Python25; C: \ Python25 \ DLLs ; «
ΠΠ°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Β« Hello World Β»
- ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π²Β« ΠΡΡΠΊ Β»->Β« ΠΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Β»->Β« Python 2.5 Β»->Β« IDLE (Python GUI) Β»
- ΠΡΠΊΡΠΎΠΉΡΠ΅ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ( Β«Π€Π°ΠΉΠ»Β» -> Β«ΠΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎΒ»)
- ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π²Π½ΡΡΡΠΈ ΠΈ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΠ΅:
import sys
from PyQt4.QtGui import *
app = QApplication (sys.argv)
button = QPushButton ("Hello World", ΠΠ΅Ρ)
button.show ()
app.exec_ () - ΠΠ°ΠΆΠΌΠΈΡΠ΅ Β«F5Β» Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ°.
Π’Π΅Π³ΠΈ Technorati: python, pyqt.