Содержание
- 2. Интерфейс: объекты и сообщения поле ввода кнопка флажок переключатель Все элементы окон – объекты, которые обмениваются
- 3. Классические программы основная программа
- 4. Программы, управляемые событиями Событие – это переход какого-либо объекта из одного состояния в другое. нажатие на
- 5. Программы, управляемые событиями основная программа
- 6. Что такое RAD-среда? RAD = Rapid Application Development — быстрая разработка приложений создание формы минимальный код
- 7. RAD-среды: Delphi Язык: Object Pascal, позднее Delphi: 1995: Borland, сейчас: Embarcadero Technologies
- 8. RAD-среды: Lazarus Языки: FreePascal, Delphi свободное ПО: lazarus.freepascal.org
- 9. RAD-среды: MS Visual Studio Языки: Visual Basic, Visual C++, Visual C#, Visual F# c 1995 по
- 10. § 47. Графический интерфейс: основы Объектно-ориентированное программирование. Язык Python
- 11. Графические библиотеки для Python tkinter (стандартная библиотека Python ) wxPython (http://wxpython.org) PyGTK (http://pygtk.org) PyQt (http://www.riverbankcomputing.com/software/pyqt/intro) simpletk
- 12. Общие принципы форма (окно верхнего уровня) компонент (виджет, элемент) щелчок по кнопке щелчок по выключателю изменение
- 13. Простейшая программа from simpletk import * app = TApplication("Первая форма") app.run() импорт всех функций из simpletk
- 14. Свойства формы app = TApplication("Первая форма") app.position = (100, 300) x y начальные координаты app.size =
- 15. Обработчик события Задача. Запросить подтверждение при закрытии окна. событие from tkinter.messagebox import askokcancel def askOnExit( event
- 16. Задание «A»: Соберите и запустите программу, которая описывается в теоретической части. Сделайте так, чтобы форма открывалась
- 17. Задание «C»: Доработайте программу уровня B так, что при одиночном щелчке мышью сообщение не появлялось, но
- 18. § 48. Использование компонентов Объектно-ориентированное программирование. Язык Python
- 19. Просмотр рисунков панель TPanel выключатель TCheckBox рисунок TImage кнопка TButton
- 20. Настройка формы from simpletk import * app = TApplication ( "Просмотр рисунков" ) app.position = (200,
- 21. Верхняя панель panel = TPanel ( app, relief = "raised", height = 35, bd = 1
- 22. Кнопка и выключатель кнопка TButton выключатель TCheckBox openBtn = TButton ( panel, width = 110, height=30,
- 23. Поле для рисунка рисунок TImage image = TImage ( app, bg = "white" ) image.align =
- 24. Выбор файла выбрать файл с рисунком if файл выбран: загрузить рисунок в компонент image После щелчка
- 25. Выбор файла from tkinter import filedialog def selectFile ( sender ): fname = filedialog.askopenfilename( filetypes =
- 26. Центрирование Обработчик: def cbChanged ( sender ): image.center = sender.checked image.redrawImage() объект-источник события включен (True/False)? перерисовать
- 27. Новый класс – «всё в одном» class TImageViewer ( TApplication ): ... app = TImageViewer() app.run()
- 28. Класс TImageViewer: конструктор class TImageViewer ( TApplication ): def __init__(self): TApplication.__init__ ( self, "Просмотр рисунков" )
- 29. Класс TImageViewer: обработчики class TImageViewer ( TApplication ): def __init__(self): ... def selectFile ( self, sender
- 30. Ввод и вывод данных для веб-страниц метка rgbLabel TLabel метка rgbRect TLabel поле ввода rEdit TEdit
- 31. Основная программа app = TApplication ( "RGB-кодирование" ) app.size = (210, 90) app.position = (200, 200)
- 32. Компоненты Метки для вывода результата: fc = ( "Courier New", 16, "bold" ) rgbLabel = TLabel
- 33. Компоненты Поля ввода: rEdit = TEdit ( app, font = f, width = 50 ) rEdit.position
- 34. Обработчик события «изменение поля» def onChange ( sender ): r = int ( rEdit.text ) g
- 35. Запуск программы rEdit.onChange = onChange gEdit.onChange = onChange bEdit.onChange = onChange app.run() Запуск программы: Подключение обработчиков:
- 36. Обработка ошибок Exception in Tkinter callback Traceback (most recent call last): … line 48, in onChange
- 37. Обработка ошибок try: # «опасные» команды except: # обработка ошибки попытаться выполнить если исключение (аварийная ситуация)
- 38. Обработка ошибок def onChange ( sender ): s = "?" # текст метки bkColor = "SystemButtonFace"
- 39. Обработка ошибок def onChange ( sender ): s = "?" bkColor = "SystemButtonFace" try: r =
- 40. Задание «A»: Постройте программу, которая вычисляет площадь комнаты. Требования: размер окна нельзя менять при попытке закрыть
- 41. Задание «B»: Постройте программу, которая вычисляет площадь стен комнаты и определяет, сколько рулонов обоев нужно на
- 42. Задание «С»: Доработайте программу так, чтобы по щелчку по кнопке «Сохранить» все данные сохранялись в файле
- 43. § 49. Совершенствование компонентов Объектно-ориентированное программирование. Язык Python
- 44. Новый класс для ввода целого числа Задача: построить поле для ввода целых чисел, в котором есть
- 45. Добавление свойства class TIntEdit ( TEdit ): def __init__ ( self, parent, **kw ): TEdit.__init__ (
- 46. Проверка символов class TIntEdit ( TEdit ): def __init__ ( self, parent, **kw ): ... self.onValidate
- 47. Поле для ввода целых чисел app = TApplication ( "Шестнадцатеричная система" ) app.size = (250, 36)
- 48. Поле для ввода целых чисел Поле ввода: from int_edit import TIntEdit decEdit = TIntEdit ( app,
- 49. § 50. Модель и представление Объектно-ориентированное программирование. Язык Python
- 50. решение Еще одна декомпозиция Задача: повторное использование написанного ранее готового кода. решение
- 51. решение Модель и представление Задача: хранить и использовать данные об изменении курса доллара.
- 52. Модель и представление Задача: вычисление арифметического выражения: целые числа знаки арифметических действий + - * /
- 53. Модель k = номер последней операции if k результат = строка в число else: n1 =
- 54. Модель: вычисления def Calc ( s ): k = lastOp ( s ) if k return
- 55. Вспомогательные функции def priority ( op ): if op in "+-": return 1 if op in
- 56. Представление список TListBox выпадающий список TComboBox app = TApplication ( "Калькулятор" ) app.size = (200, 150)
- 57. Компоненты Input = TComboBox ( app, values = [] ) Input.align = "top" Input.text = "2+2"
- 58. Логика работы if нажата клавиша Enter: вычислить выражение добавить результат в начало списка if выражения нет
- 59. Обработчик нажатия на клавишу Enter from model import Calc def doCalc ( event ): expr =
- 60. Задание «A»: Измените программу так, чтобы она могла вычислять значения выражений с вещественными числами.
- 61. Задание «B»: Измените программу так, чтобы она могла вычислять значения выражений со скобками.
- 62. Задание «С»: Измените программу так, чтобы она могла вычислять значения выражений, содержащих вызовы функций abs, sin,
- 63. Задание «D»: Измените программу так, чтобы вся логика программы содержалась в класcе TCalculator. Основная программа должны
- 64. Задание «D»: (продолжение) Все результаты вычислений и сообщения об ошибках записываются в файл results.txt: ... sin(1.2)*sqrt(1.7)=1.215230290196084
- 65. Калькулятор
- 66. Конец фильма ПОЛЯКОВ Константин Юрьевич д.т.н., учитель информатики ГБОУ СОШ № 163, г. Санкт-Петербург kpolyakov@mail.ru ЕРЕМИН
- 68. Скачать презентацию