Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив1 / docx53 / Записка.docx
Скачиваний:
25
Добавлен:
01.08.2013
Размер:
434.58 Кб
Скачать

3.Реализация всплывающей подсказки Класс Explain представляет собой структуру, состоящую из нескольких виджетов, при взаимодействии с которыми происходит извлечение подсказок из базы знаний.

Реализация класса Explain

class Explain():

def __init__(self):

import render.mygui as mygui

self.explainPanel = render_engine.Gui.createWidgetT("Window", "Panel",

mygui.IntCoord(0, 0, 200, 200), mygui.Align(),

"Info", "")

self.explains = self.getExplains()

self.curExplain = 0;

self.text = self.explainPanel.createWidgetT("StaticText",

"ToolTipText",

mygui.IntCoord(12, 12, 0, 0),

mygui.Align())

self.text.setCaption(self.explains[0])

w = 450

h = 200

self.explainPanel.setSize(w + 24, h + 24)

self.text.setSize(w, h)

x = (render_engine.Window.width - w) / 2

y = (render_engine.Window.height - h) / 2

self.explainPanel.setPosition(x, y)

self.explainPanel.setAlpha(1.0)

self.button_prev = self.explainPanel.createWidgetT("Button", "Button", mygui.IntCoord(10, 200, 50, 20), mygui.Align())

self.button_prev.setCaption("Prev")

self.button_next = self.explainPanel.createWidgetT("Button", "Button", mygui.IntCoord(65, 200, 50, 20), mygui.Align())

self.button_next.setCaption("Next")

exiteExplain = self.explainPanel.createWidgetT("Button",

"MainPanel_OutputWindowDelButton",

mygui.IntCoord(450, 5, 20, 20),

mygui.Align(),

"")

exiteExplain.subscribeEventMouseButtonClick(self, "_onExitExplain")

self.button_prev.subscribeEventMouseButtonClick(self, '_onPrevExplain')

self.button_next.subscribeEventMouseButtonClick(self, '_onNextExplain')

self.button_prev.setEnabled(False)

self.explainPanel.subscribeEventMouseDrag(self, "_eventMouseDragPanel")

self.explainPanel.subscribeEventMouseButtonPressed(self, "_eventMouseButtonPressedPanel")

def getExplains(self):

import suit.core.sc_utils as sc_utils

import sc_core.pm as sc

session = Kernel.session()

result = []

attr = sc_utils.getElementByIdtf("next*", ["/seb/test"])

el = sc_utils.getElementByIdtf("first", ["/seb/test"])

result.append(sc_utils.cp1251ToUtf8(session.get_content_str(el)))

cur = sc_utils.searchBinPairsAttrFromNode(session, el, attr, sc.SC_POS)

while cur:

el = cur[0]

result.append(sc_utils.cp1251ToUtf8(session.get_content_str(el)))

cur = sc_utils.searchBinPairsAttrFromNode(session, el, attr, sc.SC_POS)

return result

def _eventMouseDragPanel(self, _sender, _left, _top):

dx = _left - self.x

dy = _top - self.y

pos = self.explainPanel.getPosition()

self.explainPanel.setPosition(pos.left + dx, pos.top + dy)

def _eventMouseButtonPressedPanel(self, _sender, _left, _top, _id):

"""Event on identifier pressed

"""

self.x = _left

self.y = _top

def _onExitExplain(self, widget):

render_engine.Gui.destroyWidget(self.explainPanel)

def _onPrevExplain(self, widget):

if self.curExplain == 1:

self.button_prev.setEnabled(False)

if self.curExplain == len(self.explains)-1:

self.button_next.setEnabled(True)

self.curExplain -= 1

self.text.setCaption(self.explains[self.curExplain])

def _onNextExplain(self, widget):

if self.curExplain == len(self.explains)-2:

self.button_next.setEnabled(False)

if self.curExplain == 0:

self.button_prev.setEnabled(True)

self.curExplain += 1

Пример работы программы:

Рис 3.1. Пример подсказки

Рис.3.2. Пример подсказки

Рис3.3. Пример подсказки

4.Тестирование С++( Расчетная работа)

Процесс тестирования является завершающим этапом разработки программного обеспечения. В ходе тестирования проверяются результаты реализации после каждой сборки компонента или системы. В первом случае проводятся тесты на целостность, во втором – системные тесты.

Основными задачами процесса тестирования являются следующие:

1) планирование тестов, необходимых на каждой итерации, включая

тесты на целостность и системные тесты;

2) определение предмета тестирования, тестовых примеров, процедур

тестирования, и, по возможности, реализация тестовых компонентов (компонентов, которые автоматизируют процедуру тестирования или ее часть);

3) выполнение тестов и обработка результатов каждого теста.

В случае обнаружения дефектов, компонент или сборка подвергается повторному тестированию. После этого может произойти откат к предыдущим рабочим процессам для исправления ошибок.

Соседние файлы в папке docx53