
- •СОДЕРЖАНИЕ
- •ОСНОВЫ ООП В PYTHON
- •КЛАССЫ, АТРИБУТЫ, МЕТОДЫ
- •КОНСТРУКТОР
- •ДЕСТРУКТОР
- •ДАННЫЕ ЭКЗЕМПЛЯРА И КЛАССА
- •НАСЛЕДОВАНИЕ
- •НАСТРОЙКА ЧЕРЕЗ НАСЛЕДОВАНИЕ
- •НАСТРОЙКА ЧЕРЕЗ НАСЛЕДОВАНИЕ
- •БИБЛИОТЕКА NumPy
- •NumPy: СОЗДАНИЕ МАССИВОВ
- •NumPy: МАНИПУЛИРОВАНИЕ МАССИВАМИ
- •NumPy: ОПЕРАЦИИ С ДАННЫМИ
- •NumPy: СЛОЖНЫЕ ВЫЧИСЛЕНИЯ
- •БИБЛИОТЕКА Matplotlib
- •Matplotlib: СОЗДАНИЕ ПРОСТЕЙШИХ ГРАФИКОВ
- •Matplotlib: ВНЕШНИЙ ВИД ГРАФИКОВ
- •Matplotlib: ИСПОЛЬЗОВАНИЕ ВМЕСТЕ С NumPy
- •БИБЛИОТЕКА PyQt
- •РАЗРАБОТКА GUI: C++ vs PyQt
- •PyQt: РАЗМЕЩЕНИЕ ВИДЖЕТОВ
- •PyQt: ОБРАБОТКА СИГНАЛОВ
- •PyQt: ИЕРАРХИЯ КЛАССОВ И ВИДЖЕТОВ
- •PyQt: ВИДЖЕТ ОКНА QMainWindow
- •PyQt: СОЗДАНИЕ МЕНЮ И ДЕЙСТВИЯ
- •PyQt: СТРОКА СОСТОЯНИЯ И ПАНЕЛЬ ИНСТРУМЕНТОВ
- •PyQt: РАЗМЕЩЕНИЕ ВИДЖЕТОВ И ДИАЛОГОВЫЕ ОКНА
- •ЗАДАНИЕ НА ЛАБОРАТОРНУЮ РАБОТУ
- •ЗАДАНИЕ НА ЛАБОРАТОРНУЮ РАБОТУ

PyQt: СОЗДАНИЕ МЕНЮ И ДЕЙСТВИЯ
QAction – абстрактный класс для действий, выполняемых из меню, панели инструментов или с помощью комбинации клавиш; QMenu – готовыйвиджетменю
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, qApp
class MainWindow(QMainWindow): def __init__(self):
super().__init__() self.resize(350, 150)
self.setWindowTitle(’PyQt5 MainWindow’)
actExit = QAction(’&Exit’, self) actExit.setShortcut(’Ctrl+Q’) menubar = self.menuBar()
fileMenu = menubar.addMenu(’&File’) fileMenu.addAction(actExit) actExit.triggered.connect(qApp.quit) self.show()
if __name__ == ’__main__’:
app = QApplication(sys.argv) 26 win = MainWindow()
app.exec()

PyQt: СТРОКА СОСТОЯНИЯ И ПАНЕЛЬ ИНСТРУМЕНТОВ
Добавлениестрокисостояния, панелиинструментов ииконки:
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, qApp from PyQt5.QtGui import QIcon
class MainWindow(QMainWindow): def __init__(self):
super().__init__() self.resize(350, 150)
self.setWindowTitle(’PyQt5 MainWindow’)
actExit = QAction(Qicon(’sun_java.png’), ’&Exit’, self)
. . .
actExit.triggered.connect(qApp.quit) self.statusBar().showMessage(’Ready’) self.toolbar = self.addToolBar(’Main’) self.toolbar.addAction(actExit)
self.show()
if __name__ == ’__main__’:
app = QApplication(sys.argv) win = MainWindow() app.exec()
27

PyQt: РАЗМЕЩЕНИЕ ВИДЖЕТОВ И ДИАЛОГОВЫЕ ОКНА
Размещениетекстового полявкачествецентральноговиджетаииспользованиестандартногодиалоговогоокна:
import sys |
QTextEdit, QFileDialog |
|
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, qApp, |
||
from PyQt5.QtGui import QIcon |
|
|
class MainWindow(QMainWindow): |
|
|
|
def __init__(self): |
|
|
. . . |
|
|
actOpen = QAction(’&Open’, self) |
|
|
actExit = QAction(Qicon(’sun_java.png’), ’&Exit’, self) |
|
|
actExit.setShortcut(’Ctrl+Q’) |
|
|
menubar = self.menuBar() |
|
|
fileMenu = menubar.addMenu(’&File’) |
|
|
fileMenu.addAction(actOpen) |
|
|
fileMenu.addAction(actExit) |
|
|
actExit.triggered.connect(qApp.quit) |
|
|
actOpen.triggered.connect(self.OnFileOpen) |
|
|
self.text = QTextEdit() |
|
|
self.setCentralWidget(text) |
|
|
. . . |
|
|
def OnFileOpen(self): |
|
|
fname = QFileDialog.getOpenFileName(self, ’Open file’) |
|
28 |
if fname[0]: |
|
f = open(fname[0], ’r’) |
|
|
|
self.text.setText(’File ’ + fname[0] + ’is loaded’) |
|

Лабораторная работа №8