今まで私は公式すなわちスピナー値を選択したときに、これまで私はスピナー値の正常非表示にするラベルを選択したときにどのように私は、ラベルを作成することができますか?

BollamReddy:

[ここに私がそれにGitHubの親切ルックで私のコードを貼り付けている] { https://github.com/BollamReddy-Python-Vba/python/commit/710bd80f649968cd19181e0abda21f5164e8ba9f }

import kivy
kivy.require('1.10.0')
from kivy.core.window import Window
from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.base import runTouchApp
from kivy.uix.label import Label
from kivy.graphics import Color, Rectangle
from kivy.uix.textinput import TextInput
from kivy.uix.spinner import Spinner
from kivy.uix.checkbox import CheckBox
Window.size = (500, 400)
Window.clearcolor = (0.1, 0.1, 0.3, 0.2)


def show_selected_value(spinner, text):
    print('Selected Process', spinner, 'have text', text)


class LRefConfigAutomation(App):
    config = None

    def build_config(self, config):
        config.setdefaults('LefConfigWindowSection', {
            'PartInputLabel': 'Please Enter your Part No',
            'TypeOfProcessLabel': 'Select Type Of Process',
            'NormalFolderName': 'Enter Normal Folder Name',

        })
        self.config = config

    def build(self):
        config = self.config
        root = FloatLayout()
        lbl = config.get('LefConfigWindowSection', 'PartInputLabel')
        self.label = Label(text=lbl, pos_hint={"center_x": .66, "center_y": .90}, size_hint=(1.0, 1.0), halign="left",valign="middle", font_name='Georgia')
        self.label.bind(size=self.label.setter('text_size'))
        self.label.font_size = '14.5dp'  # something that'll give texture bigger than phone's screen size
        root.add_widget(self.label)
        with self.label.canvas:
            Color(0, 0, 0, 0)
            Rectangle(pos=self.label.pos, size=self.label.size)
        self.txtKemNo = TextInput(pos_hint={"center_x": .66, "center_y": .90}, size_hint=(None, None),font_name="Georgia", size=(100, 30), multiline=False, hint_text="Part Number")
        root.add_widget(self.txtKemNo)
        lbl = config.get('LefConfigWindowSection', 'TypeOfProcessLabel')
        self.label = Label(text=lbl, pos_hint={"center_x": .66, "center_y": .75}, size_hint=(1.0, 1.0), halign="left",valign="middle", font_name='Georgia')
        self.label.bind(size=self.label.setter('text_size'))
        self.label.font_size = '14.5dp'  # something that'll give texture bigger than phone's screen size
        root.add_widget(self.label)
        with self.label.canvas:
            Color(0, 0, 0, 0)
            Rectangle(pos=self.label.pos, size=self.label.size)
        self.requestsspinner = Spinner(
            # default value shown
            text='Select Process',
            # available values will be binded to the combo
            values=("Normal", "Official"),
            # just for positioning in our example
            size_hint=(None, None),
            size=(110, 20),
            pos_hint={'center_x': .66, 'center_y': .75}, font_name='Georgia')
        self.requestsspinner.font_size = '14.5dp'
        self.requestsspinner.bind(text=show_selected_value)
        self.requestsspinner.bind(on_click=self.CreateLable)
        root.add_widget(self.requestsspinner)
        runTouchApp(root)
    def CreateLable(self, spinner, text):
        root = FloatLayout()
        print(text)
        if text == "Normal":
            pass
        elif text == "Official":
            config = self.config
            lbl = config.get('LefConfigWindowSection', 'NormalFolderName')
            print(lbl)
            self.label = Label(text=lbl, pos_hint={"center_x": .66, "center_y": .65}, size_hint=(1.0, 1.0),halign="left",valign="middle", font_name='Georgia')
            self.label.bind(size=self.label.setter('text_size'))
            self.label.font_size = '14.5dp'
            root.add_widget(self.label)
            with self.label.canvas:
                Color(0, 0, 0, 0)
                Rectangle(pos=self.label.pos, size=self.label.size)

if __name__ == "__main__":
    LRefConfigAutomation().run()
ジョン・アンダーソン:

3つの問題があります。まず、あなたのbuild()方法は戻っていませんroot(行うことを意図しているものです)。行を削除します。

runTouchApp(root)

とに置き換えます。

return root

第二に、あなたがCreateLable()呼び出されていません。私は変更することをお勧め:

    self.requestsspinner.bind(on_click=self.CreateLable)

に:

    self.requestsspinner.bind(text=self.CreateLable)

第三の問題はでていることであるCreateLable()あなたの新しいを追加していないLabelディスプレイに。rootあなたはその方法で作成することはとは関係ありませんrootお使いのディスプレイのを。私は、にその方法を変更することをお勧め:

def CreateLable(self, spinner, text):
    if text == "Normal":
        pass
    elif text == "Official":
        config = self.config
        lbl = config.get('LefConfigWindowSection', 'NormalFolderName')
        self.label = Label(text=lbl, pos_hint={"center_x": .66, "center_y": .65}, size_hint=(1.0, 1.0),halign="left",valign="middle", font_name='Georgia')
        self.label.bind(size=self.label.setter('text_size'))
        self.label.font_size = '14.5dp'
        self.root.add_widget(self.label)  # add label to the GUI
        with self.label.canvas:
            Color(0, 0, 0, 0)
            Rectangle(pos=self.label.pos, size=self.label.size)

あなたは、上記の方法の最後にキャンバス命令を削除する場合があります。それは目に見えないを作成してRectangleお使いのディスプレイをOD左下に。posそしてsize新しいのは、Labelデフォルト値で残っている(0,0)と、(100,100)どこつまりので、その時点でRectangle描画され、それがどこに滞在します。

ここでは全体のコードは次のとおりです。

import kivy
kivy.require('1.10.0')
from kivy.core.window import Window
from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.label import Label
from kivy.graphics import Color, Rectangle
from kivy.uix.textinput import TextInput
from kivy.uix.spinner import Spinner
Window.size = (500, 400)
Window.clearcolor = (0.1, 0.1, 0.3, 0.2)


def show_selected_value(spinner, text):
    print('Selected Process', spinner, 'have text', text)


class LRefConfigAutomation(App):
    config = None

    def build_config(self, config):
        config.setdefaults('LefConfigWindowSection', {
            'PartInputLabel': 'Please Enter your Part No',
            'TypeOfProcessLabel': 'Select Type Of Process',
            'NormalFolderName': 'Enter Normal Folder Name',

        })
        self.config = config

    def build(self):
        config = self.config
        root = FloatLayout()
        lbl = config.get('LefConfigWindowSection', 'PartInputLabel')
        self.label = Label(text=lbl, pos_hint={"center_x": .66, "center_y": .90}, size_hint=(1.0, 1.0), halign="left",valign="middle", font_name='Georgia')
        self.label.bind(size=self.label.setter('text_size'))
        self.label.font_size = '14.5dp'  # something that'll give texture bigger than phone's screen size
        root.add_widget(self.label)
        with self.label.canvas:
            Color(0, 0, 0, 0)
            Rectangle(pos=self.label.pos, size=self.label.size)
        self.txtKemNo = TextInput(pos_hint={"center_x": .66, "center_y": .90}, size_hint=(None, None),font_name="Georgia", size=(100, 30), multiline=False, hint_text="Part Number")
        root.add_widget(self.txtKemNo)
        lbl = config.get('LefConfigWindowSection', 'TypeOfProcessLabel')
        self.label = Label(text=lbl, pos_hint={"center_x": .66, "center_y": .75}, size_hint=(1.0, 1.0), halign="left",valign="middle", font_name='Georgia')
        self.label.bind(size=self.label.setter('text_size'))
        self.label.font_size = '14.5dp'  # something that'll give texture bigger than phone's screen size
        root.add_widget(self.label)
        with self.label.canvas:
            Color(0, 0, 0, 0)
            Rectangle(pos=self.label.pos, size=self.label.size)
        self.requestsspinner = Spinner(
            # default value shown
            text='Select Process',
            # available values will be binded to the combo
            values=("Normal", "Official"),
            # just for positioning in our example
            size_hint=(None, None),
            size=(110, 20),
            pos_hint={'center_x': .66, 'center_y': .75}, font_name='Georgia')
        self.requestsspinner.font_size = '14.5dp'
        self.requestsspinner.bind(text=show_selected_value)
        self.requestsspinner.bind(text=self.CreateLable)
        root.add_widget(self.requestsspinner)
        return root

    def CreateLable(self, spinner, text):
        if text == "Normal":
            pass
        elif text == "Official":
            config = self.config
            lbl = config.get('LefConfigWindowSection', 'NormalFolderName')
            self.label = Label(text=lbl, pos_hint={"center_x": .66, "center_y": .65}, size_hint=(1.0, 1.0),halign="left",valign="middle", font_name='Georgia')
            self.label.bind(size=self.label.setter('text_size'))
            self.label.font_size = '14.5dp'
            self.root.add_widget(self.label)

if __name__ == "__main__":
    LRefConfigAutomation().run()

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=399444&siteId=1