Kivy 파이썬으로 레이블 텍스트 변경

Northwarks

나는 Python에 대해 반 괜찮지 만 Kivy에 익숙하지 않습니다. 제 문제가 레이블 ID를 참조하고 있다는 것을 알고 있지만 문제를 해결할 수 없으며 검색이 필요한 것을 제공하지 않는 것 같습니다.

나는 현재 시간을 표시하기 위해 레이블을 얻으려고 노력하고 있으므로 업데이트 등의 측면에서 올바른 프레임 워크가 있다는 것을 알고 있지만 레이블 ID를 어떻게 든 참조하고 어려움을 겪고 있다고 확신합니까?

다음 코드는 정상적으로 실행 label_text.text되고 오류가 발생하는 지점 을 업데이트하려고 할 때까지 레이블 등을 표시합니다 AttributeError: 'float' object has no attribute 'lbl_time'. 시도 str(time.strftime("%H:%M:%S"))했지만 해결되지 않았습니다.

from kivy.app import App
from kivy.base import runTouchApp
from kivy.lang import Builder
from kivy.properties import ListProperty
from kivy.uix.boxlayout import BoxLayout
from kivy.properties import ObjectProperty
from kivy.uix.screenmanager import ScreenManager, Screen, WipeTransition, FadeTransition
from kivy.uix.anchorlayout import AnchorLayout
from kivy.properties import ObjectProperty, StringProperty
from kivy.clock import Clock
import time
from datetime import datetime

class MainScreen(Screen):

def update_time(self):
    lbl_time = ObjectProperty()
    MyTime = time.strftime("%H:%M:%S")
    self.lbl_time.text = MyTime

class DetailScreen(Screen):
    pass

class SettingsScreen(Screen):
    pass

class MyScreenManager(ScreenManager):
    pass



root_widget = Builder.load_string('''
    MyScreenManager:
    MainScreen:
    DetailScreen:
    SettingsScreen:

<MainScreen>:
    name: 'main'
    BoxLayout:
        orientation: 'vertical'
        Label:
            id: lbl_time
            text: 'Time' 
            font_size: 60
        Label:
            text: 'Main2'
            font_size: 30
        GridLayout:
            cols: 2
            Label:
                text: 'Bottom'
                font_size: 30
            Label:
                text: 'Bottom1'
                font_size: 30

 <DetailScreen>:
     name: 'details'

 <SettingsScreen>:
     name: 'settings'

 ''')
 class ScreenManagerApp(App):

     def build(self):
         return root_widget

     def on_start(self):
         Clock.schedule_interval(MainScreen.update_time, 1)

 ScreenManagerApp().run()
toto_tico

이것은 Kivy가 아닌 Python 문제에 가깝습니다. 의 객체 / 인스턴스가 아닌 update_time클래스 MainScreen클래스 의을 호출 했습니다 MainScreen. 기본적으로 build메서드 에 객체 (self.main_screen)에 대한 참조를 저장 한 다음 on_start에서 사용해야합니다.

class ScreenManagerApp(App):

    def build(self):
        self.main_screen = MainScreen()
        return self.main_screen

    def on_start(self):
        Clock.schedule_interval(self.main_screen.update_time, 1)

또한 kv 언어, 즉 파이썬에서 ID에 액세스 할 수 없습니다. 속성을 추가하여 ID를 참조해야합니다. 예 the_time:

<MainScreen>:
    name: 'main'
    the_time: _id_lbl_time
    BoxLayout:
        orientation: 'vertical'
        Label:
            id: _id_lbl_time

사소한 문제는 update_time()매개 변수를 수신한다는 것입니다. 또한 코드에 이상한 점이 많이있어서 코드를 실행할 수 없었습니다. 아래 코드에서 위의 모든 사항을 수정했습니다.

from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen
from kivy.properties import ObjectProperty, StringProperty
from kivy.clock import Clock
import time
from datetime import datetime

Builder.load_string('''
<MainScreen>:
    name: 'main'
    the_time: _id_lbl_time
    BoxLayout:
        orientation: 'vertical'
        Label:
            id: _id_lbl_time
            text: 'Time' 
            font_size: 60
 ''')

class MainScreen(Screen):

    def update_time(self, sec):
        MyTime = time.strftime("%H:%M:%S")
        self.the_time.text = MyTime


class ScreenManagerApp(App):

    def build(self):
        self.main_screen = MainScreen()
        return self.main_screen

    def on_start(self):
        Clock.schedule_interval(self.main_screen.update_time, 1)

ScreenManagerApp().run()

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Kivy Python에서 레이블 텍스트를 동적으로 변경할 수 없음

분류에서Dev

Kivy 레이블 텍스트 2 줄

분류에서Dev

텍스트 레이블 Javafx 변경

분류에서Dev

텍스트 입력의 변수를 레이블 (kivy)의 텍스트로 사용하는 방법

분류에서Dev

JS : 내부 입력으로 레이블 텍스트 변경

분류에서Dev

Visual Basic.NET으로 레이블 텍스트 변경

분류에서Dev

Kivy 레이블 텍스트가 업데이트되지 않음

분류에서Dev

레이블 텍스트를 업데이트하는 Kivy ObjectProperty

분류에서Dev

Kivy 레이블 텍스트를 동적으로 업데이트 할 수 없음

분류에서Dev

파이썬으로 텍스트 파일의 변수 값 수정

분류에서Dev

Kivy 스크롤 가능 레이블 및 텍스트 파일, 레이블이 업데이트되지 않음

분류에서Dev

C # 레이블 텍스트를 목록 상자 선택 텍스트로 변경

분류에서Dev

행 차트에서 레이블 텍스트 색상 변경

분류에서Dev

CRM 차트의 레이블에서 텍스트 변경

분류에서Dev

다른 클래스에서 레이블 텍스트 변경

분류에서Dev

Qt 다른 클래스에서 레이블 텍스트 변경

분류에서Dev

레이블 텍스트의 윤곽선 두께 변경

분류에서Dev

x 초마다 레이블 변경 텍스트 c # 배열

분류에서Dev

JQuery를 사용하여 레이블 텍스트 변경

분류에서Dev

Tkinter 레이블의 불가능한 변경 텍스트

분류에서Dev

Tkinter 레이블의 불가능한 변경 텍스트

분류에서Dev

메서드 내에서 레이블 텍스트 변경

분류에서Dev

메서드 내에서 레이블 텍스트 변경

분류에서Dev

MPAndroidChart에서 yAxis 레이블의 텍스트 변경

분류에서Dev

C ++ CLI 레이블의 텍스트 변경

분류에서Dev

Swift에서 레이블 텍스트 변경

분류에서Dev

NativeScript 레이블의 텍스트를 변경하는 방법

분류에서Dev

ListView ItemActivate를 통해 레이블 텍스트 변경

분류에서Dev

Xamarin : 목록보기 내에서 레이블 텍스트 변경

Related 관련 기사

  1. 1

    Kivy Python에서 레이블 텍스트를 동적으로 변경할 수 없음

  2. 2

    Kivy 레이블 텍스트 2 줄

  3. 3

    텍스트 레이블 Javafx 변경

  4. 4

    텍스트 입력의 변수를 레이블 (kivy)의 텍스트로 사용하는 방법

  5. 5

    JS : 내부 입력으로 레이블 텍스트 변경

  6. 6

    Visual Basic.NET으로 레이블 텍스트 변경

  7. 7

    Kivy 레이블 텍스트가 업데이트되지 않음

  8. 8

    레이블 텍스트를 업데이트하는 Kivy ObjectProperty

  9. 9

    Kivy 레이블 텍스트를 동적으로 업데이트 할 수 없음

  10. 10

    파이썬으로 텍스트 파일의 변수 값 수정

  11. 11

    Kivy 스크롤 가능 레이블 및 텍스트 파일, 레이블이 업데이트되지 않음

  12. 12

    C # 레이블 텍스트를 목록 상자 선택 텍스트로 변경

  13. 13

    행 차트에서 레이블 텍스트 색상 변경

  14. 14

    CRM 차트의 레이블에서 텍스트 변경

  15. 15

    다른 클래스에서 레이블 텍스트 변경

  16. 16

    Qt 다른 클래스에서 레이블 텍스트 변경

  17. 17

    레이블 텍스트의 윤곽선 두께 변경

  18. 18

    x 초마다 레이블 변경 텍스트 c # 배열

  19. 19

    JQuery를 사용하여 레이블 텍스트 변경

  20. 20

    Tkinter 레이블의 불가능한 변경 텍스트

  21. 21

    Tkinter 레이블의 불가능한 변경 텍스트

  22. 22

    메서드 내에서 레이블 텍스트 변경

  23. 23

    메서드 내에서 레이블 텍스트 변경

  24. 24

    MPAndroidChart에서 yAxis 레이블의 텍스트 변경

  25. 25

    C ++ CLI 레이블의 텍스트 변경

  26. 26

    Swift에서 레이블 텍스트 변경

  27. 27

    NativeScript 레이블의 텍스트를 변경하는 방법

  28. 28

    ListView ItemActivate를 통해 레이블 텍스트 변경

  29. 29

    Xamarin : 목록보기 내에서 레이블 텍스트 변경

뜨겁다태그

보관