learnxinyminutes-docs/ru/pyqt.md
2024-12-08 23:21:12 -07:00

82 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
filename: learnpyqt-ru.py
contributors:
- ["Nathan Hughes", "https://github.com/sirsharpest"]
translators:
- ["Vadim Toptunov", "https://github.com/VadimToptunov"]
---
**Qt** - широко известный кросс-платформенный фреймворк для разработки программного обеспечения,
который может быть использован на различных софтварных и хардварных платформах без какого-либо
изменения в коде. Данный фреймворк при этом обладает мощью и скоростью нативных приложений.
Qt и был изначально написан на *C++*.
Данный текст является адаптацией введения в Qt на C++ под авторством Алексея Ковальчука для pyqt.
```python
def window():
# Создайте объект приложения
app = QtGui.QApplication(sys.argv)
# Создайте виджет, где будет находиться наш лейбл
w = QtGui.QWidget()
# Добавьте лейбл в виджет
b = QtGui.QLabel(w)
# Задайте текст для лейбла
b.setText("Hello World!")
# Задайте информация о размере и расположении
w.setGeometry(100, 100, 200, 50)
b.move(50, 20)
# Задайте заголовок окна
w.setWindowTitle("PyQt")
# Все ранее написанное выводится на экран
w.show()
# Настройка
sys.exit(app.exec_())
if __name__ == '__main__':
window()
```
Для того чтобы получить более продвинутые функции приложения в pyqt, нам необходимо
обратить внимание на создание дополнительных элементов. Ниже представлено создание всплывающего диалогового окна, которое просит пользователя подтвердить его решение или предоставить какую-либо
информацию.
```python
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_())
Данная функция должна создавать диалоговое окно с кнопкой, которая ждет клика по себе
и затем завершает программу.
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()
```