2017-04-05 13:04:08 +03:00
---
2021-03-10 06:43:53 +03:00
category: framework
framework: PyQT
2017-04-12 23:55:26 +03:00
lang: ru-ru
2017-04-05 13:04:08 +03:00
filename: learnpyqt-ru.py
2017-04-05 13:06:04 +03:00
contributors:
- ["Nathan Hughes", "https://github.com/sirsharpest"]
translators:
2017-04-05 13:04:08 +03:00
- ["Vadim Toptunov", "https://github.com/VadimToptunov"]
---
**Qt** - широко известный кросс-платформенный фреймворк для разработки программного обеспечения,
который может быть использован на различных софтварных и хардварных платформах без какого-либо
2024-04-03 14:13:28 +03:00
изменения в коде. Данный фреймворк при этом обладает мощью и скоростью нативных приложений.
2017-04-05 13:04:08 +03:00
Qt и был изначально написан на *C++* .
Данный текст является адаптацией введения в Qt на C++ под авторством Алексея Ковальчука для pyqt.
```python
def window():
2024-04-03 14:13:28 +03:00
# Создайте объект приложения
2017-04-05 13:04:08 +03:00
app = QtGui.QApplication(sys.argv)
# Создайте виджет, где будет находиться наш лейбл
w = QtGui.QWidget()
# Добавьте лейбл в виджет
b = QtGui.QLabel(w)
# Задайте текст для лейбла
b.setText("Hello World!")
2024-04-03 14:13:28 +03:00
# Задайте информация о размере и расположении
2017-04-05 13:04:08 +03:00
w.setGeometry(100, 100, 200, 50)
b.move(50, 20)
2024-04-03 14:13:28 +03:00
# Задайте заголовок окна
2017-04-05 13:04:08 +03:00
w.setWindowTitle("PyQt")
# В с е ранее написанное выводится на экран
w.show()
# Настройка
sys.exit(app.exec_())
if __name__ == '__main__':
window()
```
2024-04-03 14:13:28 +03:00
Для того чтобы получить более продвинутые функции приложения в pyqt, нам необходимо
обратить внимание на создание дополнительных элементов. Ниже представлено создание всплывающего диалогового окна, которое просит пользователя подтвердить е г о решение или предоставить какую-либо
2017-04-05 13:04:08 +03:00
информацию.
2024-04-03 14:13:28 +03:00
```python
2017-04-05 13:04:08 +03:00
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
def window():
app = QApplication(sys.argv)
w = QWidget()
# Создайте кнопку и прикрепите е е к виджету w
b = QPushButton(w)
b.setText("Press me")
b.move(50, 50)
# Укажите b вызвать эту функцию при клике мышкой
# Заметьте, что в вызове функции отсутствуют "()"
b.clicked.connect(showdialog)
w.setWindowTitle("PyQt Dialog")
w.show()
sys.exit(app.exec_())
2024-04-03 14:13:28 +03:00
Данная функция должна создавать диалоговое окно с кнопкой, которая ждет клика по с е б е
2017-04-05 13:04:08 +03:00
и затем завершает программу.
def showdialog():
d = QDialog()
b1 = QPushButton("ok", d)
b1.move(50, 50)
d.setWindowTitle("Dialog")
# Эта модальность сообщает всплывающему окну блокировать родительский элемент, пока он активен
d.setWindowModality(Qt.ApplicationModal)
# Процесс завершается по клику мышкой
b1.clicked.connect(sys.exit)
d.exec_()
if __name__ == '__main__':
window()
```