Python для KV Lang - FigureCanvasKivyAgg

Из wikipedia .

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloWorld extends HttpServlet {
  public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    PrintWriter out = response.getWriter();
    out.println("\n" +
                "\n" +
                "Hello WWW\n" +
                "\n" +
                "

Hello WWW

\n" + ""); } }

Это, конечно, работает, только если вы добавили путь сборки servlet-api.jar к Eclipse. Обычно ваш сервер приложений (например, Tomcat ) имеет правый файл jar.

0
задан Jose Guilherme 18 January 2019 в 10:56
поделиться

1 ответ

Виджеты Kivy, используемые в kv, не должны иметь метода позиционных аргументов __init__(). FigureCanvasKivyAgg расширяет Widget, но имеет обязательный аргумент __init__(), то есть цифру, поэтому вы не можете использовать это непосредственно в kv (плохой выбор дизайна, на мой взгляд).

Но вы можете сделать хак, который может работать на вас. Следующее зависит от наличия фигуры до запуска приложения sensor. Вы можете расширить FigureCanvasKivyAgg как:

class MyFigure(FigureCanvasKivyAgg):
    def __init__(self, **kwargs):
        super(MyFigure, self).__init__(plt.gcf(), **kwargs)

Обратите внимание, что MyFigure не имеет требуемых позиционных аргументов. Но он вызывает FigureCanvasKivyAgg.__init__() с требуемым аргументом число. Вот почему фигура уже должна быть доступна.

Затем вы можете использовать MyFigure в вашем файле kv как:

<Grafico>:
    BoxLayout:
        MyFigure:
        Button:
            size_hint: 0.5, 0.09
            pos_hint: {"x": .1 , "y": .2}
            text: "Atualizar"

Конечно, метод on_enter() вашего класса Grafico должен быть удален.

0
ответ дан John Anderson 18 January 2019 в 10:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: