LINUX.ORG.RU

Нужна методология разработки кода GUI

 ,


0

2

Какова методология разработки кода для следующей задачи

нужно создать окно
поводив в окне мышкой 
получаем кривую
окно сжимаем -> раскрываем, кривая не исчезла
окно сворачиваем -> разворачиваем, кривая не исчезла
код пишем в ОО. А точнее, что нужно знать в этом ОО чтобы в голове появился набросок этого кода?

Тут подойдёт гибкая методология разработки (agile). Сделай как понял и покажи заказчику. Обсудите и уточните, что же должно быть.

fluorite ★★★★★
()

в таких гуях ты рисуешь в canvas - то есть обьект класса холст. он никуда не исчезает - хоть сжимай, хоть разжимай.

создаешь канвас правильным способом, и рисуешь в него. и все.

alysnix ★★★
()
Ответ на: комментарий от alysnix

карочи ищи пример работы с Canvas какого-нить гуя, это и есть то, что тебе надо.

alysnix ★★★
()

Какова методология разработки кода для следующей задачи

нужно создать окно
поводив в окне мышкой
получаем кривую

Сбрось свой код с пояснениями. Язык, любой.

Вот:

# Drawings.py
# $ sudo apt install python3-pyqt5
# $ python Drawings.py
import sys

from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPainter, QColor
from PyQt5.QtWidgets import QApplication, QWidget

class MouseTracker(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
        self.setMouseTracking(True)
        self.setAttribute(Qt.WA_OpaquePaintEvent, True)

    def initUI(self):
        self.show()
        self.posN = None
        self.posO = None

    def mouseMoveEvent(self, event):
        self.posO = self.posN
        self.posN = event.pos()
        self.update()

    def paintEvent(self, event):
        if self.posN and self.posO:
            q = QPainter(self)
            q.setPen(QColor(200, 0, 0))
            q.drawLine(self.posO.x(), self.posO.y(), self.posN.x(), self.posN.y())

app = QApplication(sys.argv)
ex = MouseTracker()
sys.exit(app.exec_())

С вас $10!

окно сжимаем -> раскрываем, кривая не исчезла
окно сворачиваем -> разворачиваем, кривая не исчезла

Входят в дополнительные DLC по $20 каждый.

EXL ★★★★★
()

Нинада никаких окон, устанавливашь compiz или если нельзя расширение для гнома. И на любом варианте накатываешь рисовалку на экран поверх всего. Рисуешь кривые как хоца! С тибя пять тыщ пясот пидисят пят рублёф

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от fluorite

Тут подойдёт гибкая методология разработки (agile)

:) Два чаю!

Aber ★★★★★
()

Что значит ОО? Объектно-ориентированность? Но так грамматически сомнительно писать, а два раза букву П потерять в ООП это ...

mydibyje ★★★★
()
Ответ на: комментарий от saufesma
  1. Родился в Сибири.
  2. Пошёл в школу.
  3. Купил мобильный телефон.
  4. В телефоне был Linux и оболочка на базе Qt 2.
  5. Я заинтересовался как формошлёпить под свой телефон.
  6. По итогу пришлось учить C++, Qt и немного заниматься реверс-инжинирингом.
  7. Позже жизнь заставила учить Python на уровне простого скриптинга.
  8. Совместив все эти знания, скилл поиска в Google и щепотку пасты с StackOverflow я смог написать подобный код под псевдо-ТЗ.

Такого ответа ты ждал? Или что?

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от EXL

У меня уже мозг взрывается от чтения чужого кода. А именно с этой задачей у меня картинка кода в голове не появляется, сам код есть, но не понятно как к нему пришёл автор. Может плохо владею CAPI?

Начитавшись чужого кода я начал писать свой, сомнительно.

Код на CAPI Lispworks.

Такого ответа ты ждал? Или что?

Ответ который наведет на мысль, а какой именно не знаю.

saufesma
() автор топика
Последнее исправление: saufesma (всего исправлений: 1)

Здесь не принято в теги смотреть. :D Продублируй «lisp» в тексте поста.

Gentooshnik ★★★★★
()
Ответ на: комментарий от saufesma

Ах, тебе Lisp…

Нет, ну я конечно смог бы решить подобную задачу с помощью какой-нибудь привязки Lisp к SDL, но это выходит за рамки моей зоны комфорта, увы.

EXL ★★★★★
()
Ответ на: комментарий от saufesma

Код на CAPI Lispworks.

Я только начал осваивать лисп и еще не разобрался в GUI срдствах для него, но судя по быстрому гуглежу это какая-то проприетарная жесть, на которой даже никто за столько лет в инет не выложил туториал как написать свой Paint на лиспе в этом CAPI. Как в CAPI отслеживать движения мыши я вообще не нашел. Так что я бы наверное использовал Ltk, там хоть примеры есть канваса http://www.peter-herth.de/ltk/ltkdoc/node39.html и мыши http://www.peter-herth.de/ltk/ltkdoc/node41.html

mydibyje ★★★★
()
Ответ на: комментарий от mydibyje

Спасибо за участие, дело не в книжках, а во мне. Я что-то упускаю, а вот, что не могу понять. Я не вижу как язык работает, именно CAPI. Картинки в голове нет. Может это и есть ответ?

Ltk не так уж прост, там багов пруд пруди, McCLIM то же самое.

saufesma
() автор топика
Ответ на: комментарий от mydibyje
          1  From Problem Analysis to Data Definitions

            Identify the information that must be represented and how it is represented in the chosen programming language. Formulate data definitions and illustrate them with examples.

         2   Signature, Purpose Statement, Header

            State what kind of data the desired function consumes and produces. Formulate a concise answer to the question what the function computes. Define a stub that lives up to the signature.

         3   Functional Examples

            Work through examples that illustrate the function’s purpose.

         4   Function Template

            Translate the data definitions into an outline of the function.

         5   Function Definition

            Fill in the gaps in the function template. Exploit the purpose statement and the examples.

        6    Testing

            Articulate the examples as tests and ensure that the function passes all. Doing so discovers mistakes. Tests also supplement examples in that they help others read and understand the definition when the need arises—and it will arise for any serious program.

Figure 1: The basic steps of a function design recipe

Вот это у меня и не получается применить с CAPI.

saufesma
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.