質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

2395閲覧

KVファイルからpyファイルへのアクセス方法。

mathing

総合スコア19

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

1クリップ

投稿2018/02/03 22:13

伝わりやすいタイトルが思いつかず、変なタイトルとなってしまいました。
質問です。ボタン「Parents : hello()」を押した時、Parentsクラスのhello()を実行したいです。
root.hello()やapp.hello()などが使えず「on_press: Parents.hello()」と記述してみましたが駄目でした。(NameError: name 'Parents' is not defined)
クラスがobjectだから駄目なのでしょうか?
アドバイスをいただけないでしょうか。よろしくお願いします。

Python

1from kivy.app import App 2from kivy.uix.boxlayout import BoxLayout 3 4class MainFrame(BoxLayout): 5 def __init__(self, **kwargs): 6 super().__init__(**kwargs) 7 8 9class Parents(object): 10 def __init__(self): 11 print("親クラスの初期化") 12 13 def hello(self): 14 print("親クラスのhello()")

KV

1#:kivy 1.10.0 2MainFrame: 3 4<MainFrame>: 5 orientation: "vertical" 6 Label: 7 text: "label" 8 BoxLayout: 9 Button: 10 text: "Parents : hello()" 11 on_press: Parents.hello()

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

#:kivy 1.10.0 #:import Parents __main__.Parents MainFrame: <MainFrame>: orientation: "vertical" Label: text: "label" BoxLayout: Button: text: "Parents : hello()" on_press: Parents().hello()

kv言語内において「#:」を除く「:」の右側で参照できる識別子は

  • 予約語(root, self, app, args)
  • Widgetに割り当てたid
  • #:importした物(今回使った方法)
  • #:setした物

だけで、何もしてないのに勝手にParentsクラスが使えるようになったりはしません。

以下の記事をもしまだ読んだことが無いのならお薦めですよ。
Kv Languageの基本

投稿2018/02/04 08:51

編集2018/02/04 09:50
gottadiveintopy

総合スコア736

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mathing

2018/02/04 09:43

gottadiveintopyさん。 ご回答ありがとうございます。 記述していただきましたコードで実行できました。 また、参考になるサイトも教えていただき、ありがとうございます。 しっかりと読んでみたいと思います。どうもありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問