Мы поможем в написании ваших работ!
ЗНАЕТЕ ЛИ ВЫ?
|
Вхождение курсора в пределы виджета
Содержание книги
- from SimpleXMLRPCServer import SimpleXMLRPCServer
- Лекция#10:Работа с базой данных
- Работа с базой данных из python-приложения
- Поддерживаетdb-api 2. 0,а значит,переход на любую другую субд потребует минимальных изменений в вызове функции connect() и,возможно,использования более
- Следующий сценарий создаст таблицу в базе данных(в случае сsqliteзаботиться о создании базы данных не нужно:файл создастся автоматически. Для других баз данных
- c = db.connect(database="tvprogram") cu = c.cursor()
- ОРТ|Новости|Новости|9.15 10.02.2003 9.15|ОРТ|"НЕЖНЫЙ ЯД"|Сериал|10.15
- c = db.connect(database="tvprogram") cu = c.cursor()
- Для СУБДPostgreSQLнужно взять неPyGreSQL,аpsycopg,так как в первом есть
- Лекция#11:Многопоточные вычисления
- Поддержка многопоточности в языкеPythonдоступна через использование ряда модулей.В
- Пример многопоточной программы
- Thread(group, target, name, args, kwargs)
- print "Hello, world!"
- Замки позволяют ограничивать вход в некоторую область программы одним потоком. Замки могут потребоваться для обеспечения целостности структуры данных. Например,если для
- print "Процесс %s запрашивает ресурс %s" % (n, r)
- from threading import BoundedSemaphore maxconnections = 5
- Еще одним способом коммуникации между объектами являются события.Экземпляры
- notify() и notifyAll() другими потоками.Необязательный аргумент timeout
- quot;""Занесение нового элемента в контейнер и оповещение потоков"""
- quot;""Занесение нового элемента в контейнер и оповещение потоков"""
- Следующий пример иллюстрирует параллельность выполнения потоков,используя возможности библиотеки графических примитивов Tkinter(она входит в стандартную
- quot;""Выход из программы"""
- Параллельное программирование требует тщательной отработки взаимодействия между потоками управления.Некоторые участки кода необходимо ограждать от одновременного
- В лекции будет рассматриваться пакетtkinter,который по сути является оберткой дляtcl/tk - известного графического пакета для сценарного языка tcl. На примере этого
- Вхождение курсора в пределы виджета
- Focusin. Получение фокуса окном. Focusout. Keypress. Нажатие клавиши на клавиатуре. Keyrelease. Отжатие клавиши на клавиатуре. Выход курсора за пределы виджета. Motion. Движение мыши в пределах виджета. Mousewheel. Прокрутка колесика мыши. Reparent. Измен
- tk = Tk() # основное окно приложения
- Создание и конфигурирование виджета
- from Tkinter import * tk = Tk()
- При желании можно задать стилевые опции для всех виджетов сразу:с помощью метода tk_setpalette(). Помимо использованных выше свойств в этом методе можно
- from Tkinter import * import urllib
- from Tkinter import * tk = Tk()
- b[1, 3].pack(side=BOTTOM, fill=Y) b[1, 4].pack(side=BOTTOM, fill=BOTH)
- import Tkinter, Image, ImageTk
- start=0, extent=150, fill="blue")
- c.itemconfigure(CURRENT, fill=choice(colors))
- c = Canvas(tk, height=300, bg="white")
- Виджеты располагаются внутри другого виджета(например,рамки)в соответствии с набором правил.Этот набор правил реализуют менеджеры расположения,которых в
- Лекция#13:ИнтеграцияPythonс другими языками
- Py_Finalize(),Py_NewInterpreter(),Py_EndInterpreter(),Py_SetProgramName() и
- include "Python.h" #include "md5.h"
- number of bits, modulo 2^64 (lsb
- return PyString_FromStringAndSize((char *)aDigest, 16);
- MD5_new(PyObject *self, PyObject *args)
- Пример встраивания интерпретатора в программу на C
- Здесь же следует сделать Еще одно замечание:программа,встраивающаяpython,не должна много раз выполнять py_initialize() и py_finalize(),так как это может
- File : freq.i */ %module freq. typemap(out) int * { int i;. result = PyTuple_New(256); for(i=0; i<256; i++). PyTuple_SetItem($result, i, PyLong_FromLong($1[i])); free($1);. extern int * frequency(char s[]);. swig -python freq.i. I/usr/local/lib/python2
- PyLong_FromLong(result[i])); free(result);
- X, Y = self.getSize().width, self.getSize().height label.setText("%s x %s" % (X, Y))
Классы виджетов
Для построения графического интерфейса в библиотекеTkотобраны следующие классы виджетов(в алфавитном порядке):
· Button(Кнопка)Простая кнопка для вызова некоторых действий(выполнения определенной команды).
· Canvas(Рисунок)Основа для вывода графических примитивов.
· Checkbutton(Флажок)Кнопка,которая умеет переключаться между двумя состояниями при нажатии на нее.
· Entry(Поле ввода)Горизонтальное поле,в которое можно ввести строку текста.
· Frame(Рамка)Виджет,который содержит в себе другие визуальные компоненты.
· Label(Надпись)Виджет может показывать текст или графическое изображение.
· Listbox(Список)Прямоугольная рамка со списком,из которого пользователь может выделить один или несколько элементов.
· Menu(Меню)Элемент,с помощью которого можно создавать всплывающие(popup)и ниспадающие(pulldown)меню.
· Menubutton(Кнопка-меню)Кнопка с ниспадающим меню.
· Message(Сообщение)Аналогично надписи,но позволяет заворачивать длинные строки и менять размер по требованию менеджера расположения.
· Radiobutton(Селекторная кнопка)Кнопка для представления одного из альтернативных значений.Такие кнопки,как правило,действует в группе.При нажатии на одну из них кнопка группы,выбранная ранее, "отскакивает".
· Scale(Шкала)Служит для задания числового значения путем перемещения движка
в определенном диапазоне.
· Scrollbar(Полоса прокрутки)Полоса прокрутки служит для отображения величины прокрутки в других виджетах.Может быть как вертикальной,так и горизонтальной.
· Text(Форматированный текст)Этот прямоугольный виджет позволяет редактировать и форматировать текст с использованием различных стилей,внедрять
в текст рисунки и даже окна.
· Toplevel(Окно верхнего уровня)Показывается как отдельное окно и содержит внутри другие виджеты.
Все эти классы не имеют отношений наследования друг с другом-они равноправны.Этот набор достаточен для построения интерфейса в большинстве случаев.
События
В системе современного графического интерфейса имеется возможность отслеживать различные события,связанные с клавиатурой и мышью,и происходящие на"территории"того или иного виджета.ВTkсобытия описываются в виде текстовой строки-шаблона события,состоящего из трех элементов(модификаторы,тип события и детализация события).
Тип события
Содержание события
Activate
Активизация окна
ButtonPress
Нажатие кнопки мыши
ButtonRelease
Отжатие кнопки мыши
Deactivate
Деактивация окна
Destroy
Закрытие окна
Enter
|