Как исправить 'NameError: имя' russ_yaz 'не определено' - PullRequest
0 голосов
/ 09 ноября 2019

Я хочу открыть книгу в программе просмотра PDF, чтобы создать библиотеку книг для Android. При нажатии на кнопку должен открыться ридер с нужной PDF книгой. Но при нажатии на кнопку появляется ошибка. NameError: имя 'russ_yaz' не определено

Я попытался решить проблему, изменив местоположение russ_yaz, но ничего не изменилось.

class SubjectsScreen10(Screen):
    def russ_yaz(self):
        self.fn = 'Дудников, А.В Русский язык.pdf'
Button1:
    text:"Russian"
    on_press: russ_yaz(SubjectScreen10.fn)
if __name__ == '__main__':
    from sys import argv
    from kivy.base import runTouchApp
    from kivy.uix.scrollview import ScrollView

    if len(argv) > 1:
        fn = argv[1]
    root = PDFDocumentWidget(source=self.fn, cols=1)
    runTouchApp(root)
from tempfile import mkdtemp, mkstemp 
from shutil import rmtree 
from binascii import b2a_hex 
from os import write, close 
from threading import Thread 
from kivy.config import Config 
from pdfminer.pdfpage import PDFPage 
from pdfminer.pdfparser import PDFParser 
from pdfminer.converter import PDFPageAggregator 
from pdfminer.pdfdocument import PDFDocument, PDFNoOutlines 
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter 
from pdfminer.layout import ( 
LAParams, LTTextBox, LTTextLine, LTFigure, LTImage, LTChar, LTCurve, 
LTLine, LTRect, 
) 

from kivy.lang import Builder 
from kivy.clock import Clock 
import kivy.graphics 
from kivy.graphics import Mesh, Color 
from kivy.graphics.tesselator import Tesselator 

from kivy.uix.widget import Widget 
from kivy.uix.recycleview import RecycleView 
from kivy.uix.label import Label 
from kivy.uix.image import Image 
from kivy.uix.relativelayout import RelativeLayout 
from kivy.uix.boxlayout import BoxLayout 

from kivy.properties import ( 
StringProperty, ListProperty, NumericProperty, AliasProperty, 
DictProperty, ObjectProperty, BooleanProperty, ColorProperty, 
) 
from kivy.app import App 
from kivy.lang import Builder 
from kivy.uix.recycleview import RecycleView 
from kivy.uix.screenmanager import ScreenManager, Screen 
from kivy.uix.boxlayout import BoxLayout 
from kivy.uix.gridlayout import GridLayout 
from kivy.config import Config 

Я хочу открыть книгу в pdf-viewer

1 Ответ

0 голосов
/ 09 ноября 2019

Я попытался решить проблему, изменив местоположение russ_yaz, но ничего не изменилось.

Предположительно, вы никогда не поместите его в подходящее место.

Button1:
    text:"Russian"
    on_press: russ_yaz(SubjectScreen10.fn)

Этот код не пытается извлечь его из какого-либо конкретного места, просто найдите имя функции в локальном пространстве имен. Это в основном просто неправильно, вам нужно решить, где конкретно он определен, а затем обратиться к нему оттуда. Например, если вы сделаете russ_yaz метод класса Button1, вы можете сделать self.russ_yaz(SubjectScreen10.fn), предполагая, что SubjectScreen10 определен .

...