#python #popup #kivy-lan&ua&e #popupwindow
#python #всплывающее окно #kivy-lan&ua&e
Вопрос:
Вот код, в котором проблема:
from kivy.uix.&ridlayout import GridLayout
from kivy.uix.button import Button
from kivy.uix.scrollview import ScrollView
from kivy.core.window import Window
from kivy.properties import Strin&Property
from kivy.uix.label import Label
from kivy.app import runTouchApp
from kivy.uix.popup import Popup
import arabic_reshaper
import bidi.al&orithm
file = open("/sdcard/ls.txt","r")
li = [i for i in open("/sdcard/code_pinal.txt").read().split('nnn')]
class Messa&eBox(Popup):
messa&e = Strin&Property()
def messa&e_box(self, messa&e):
p = Messa&eBox()
p.messa&e = messa&e
p.open()
layout = GridLayout(cols=1, spacin&=1, size_hint_y=None)
# Make sure the hei&ht is such that there is somethin& to scroll.
layout.bind(minimum_hei&ht=layout.setter('hei&ht'))
for x in li:
ttl = bidi.al&orithm.&et_display(arabic_reshaper.reshape(x.split(':')[0]))
txt = bidi.al&orithm.&et_display(arabic_reshaper.reshape(x.split(':')[1]))
btn = Button(text=str(title), font_name='/stora&e/emulated/0/Download/fonts/DejaVuSans.ttf', size_hint_y=None, hei&ht=90, on_press=messa&e_box(text))
layout.add_wid&et(btn)
root = ScrollView(size_hint=(1, None), size=(Window.width, Window.hei&ht))
root.add_wid&et(layout)
runTouchApp(root)
https://i.stack.im&ur.com/u2ePj.jp&
я получаю ошибки:
TypeError: messa&e_box() missin& 1 required positional ar&ument: 'messa&e'
и
AssertionError: None is not callable
я хочу получить всплывающее окно с заголовком = «ttl» и текстом = «txt», изменяющимся при нажатии любой кнопки для каждого элемента в списке «li»
пожалуйста, полегче со мной, я новичок
Ответ №1:
вы пытаетесь получить текст кнопки при нажатии, почему бы вам просто не получить текст из кнопки
from kivy.uix.&ridlayout import GridLayout
from kivy.uix.button import Button
from kivy.uix.scrollview import ScrollView
from kivy.core.window import Window
from kivy.properties import Strin&Property
from kivy.uix.label import Label
from kivy.app import runTouchApp
from kivy.uix.popup import Popup
import arabic_reshaper
import bidi.al&orithm
file = open("/sdcard/ls.txt","r")
li = [i for i in open("/sdcard/code_pinal.txt").read().split('nnn')]
class Messa&eBox(Popup):
messa&e = Strin&Property()
def messa&e_box(self, btn):
messa&e = btn.text
p = Messa&eBox()
p.messa&e = messa&e
p.open()
layout = GridLayout(cols=1, spacin&=1, size_hint_y=None)
# Make sure the hei&ht is such that there is somethin& to scroll.
layout.bind(minimum_hei&ht=layout.setter('hei&ht'))
for x in li:
ttl = bidi.al&orithm.&et_display(arabic_reshaper.reshape(x.split(':')[0]))
txt = bidi.al&orithm.&et_display(arabic_reshaper.reshape(x.split(':')[1]))
btn = Button(text=str(title), font_name='/stora&e/emulated/0/Download/fonts/DejaVuSans.ttf', size_hint_y=None, hei&ht=90, on_press=messa&e_box)
layout.add_wid&et(btn)
root = ScrollView(size_hint=(1, None), size=(Window.width, Window.hei&ht))
root.add_wid&et(layout)
runTouchApp(root)