使 Kivy TextInput Frames 不可见但显示文本
Make Kivy TextInput Frames invisible but show text
我正在尝试使用
制作 TextInput 小部件 "invisible"
opacity: 0
但是,我想要显示 TextInput 中的文本。如果我使用
opacity: 0
TextInput 小部件和小部件内的文本不可见,有没有办法在 "hide" 小部件的同时仍然显示文本?
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
class ExampleScreen(Screen):
pass
class ExampleManager(ScreenManager):
pass
root_widget = Builder.load_string('''
ExampleManager:
ExampleScreen:
<ExampleScreen>:
name: 'example_screen'
TextInput:
id: t_1
text: 'Test text in input 1'
size_hint: .5, .5
pos_hint: {'x': 0, 'y': .5}
multiline: True
readonly: True
opacity: 0 ## If I remove this line both text edits are visible.
##You can test this by putting ## before opacity
## What I'm trying to do, is make the TextInput widget opaque so
##that you can't see the frame and only the text is visible
TextInput:
id: t_2
text: 'Test text in input 2'
size_hint: .5, .5
pos_hint: {'x': 0, 'y': 0}
multiline: True
readonly: True
opacity: 0 ## If I remove this line both text edits are visible.
##You can test this by putting ## before opacity
## What I'm trying to do, is make the TextInput widget opaque so
##that you can't see the frame and only the text is visible
''')
class TestWidgetsApp(App):
def build(self):
self.title = 'Proj'
return root_widget
TestWidgetsApp().run()
使用 background_color
属性 并将 alpha 通道设置为 0:
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
class ExampleScreen(Screen):
pass
class ExampleManager(ScreenManager):
pass
root_widget = Builder.load_string('''
ExampleManager:
ExampleScreen:
<ExampleScreen>:
name: 'example_screen'
TextInput:
id: t_1
text: 'Test text in input 1'
size_hint: .5, .5
pos_hint: {'x': 0, 'y': .5}
multiline: True
readonly: True
foreground_color: (1,0,1,1)
background_color: (0,0,0,0)
TextInput:
id: t_2
text: 'Test text in input 2'
size_hint: .5, .5
pos_hint: {'x': 0, 'y': 0}
multiline: True
readonly: True
foreground_color: (1,1,0,1)
background_color: (0,0,0,0)
''')
class TestWidgetsApp(App):
def build(self):
self.title = 'Proj'
return root_widget
TestWidgetsApp().run()
我正在尝试使用
制作 TextInput 小部件 "invisible"opacity: 0
但是,我想要显示 TextInput 中的文本。如果我使用
opacity: 0
TextInput 小部件和小部件内的文本不可见,有没有办法在 "hide" 小部件的同时仍然显示文本?
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
class ExampleScreen(Screen):
pass
class ExampleManager(ScreenManager):
pass
root_widget = Builder.load_string('''
ExampleManager:
ExampleScreen:
<ExampleScreen>:
name: 'example_screen'
TextInput:
id: t_1
text: 'Test text in input 1'
size_hint: .5, .5
pos_hint: {'x': 0, 'y': .5}
multiline: True
readonly: True
opacity: 0 ## If I remove this line both text edits are visible.
##You can test this by putting ## before opacity
## What I'm trying to do, is make the TextInput widget opaque so
##that you can't see the frame and only the text is visible
TextInput:
id: t_2
text: 'Test text in input 2'
size_hint: .5, .5
pos_hint: {'x': 0, 'y': 0}
multiline: True
readonly: True
opacity: 0 ## If I remove this line both text edits are visible.
##You can test this by putting ## before opacity
## What I'm trying to do, is make the TextInput widget opaque so
##that you can't see the frame and only the text is visible
''')
class TestWidgetsApp(App):
def build(self):
self.title = 'Proj'
return root_widget
TestWidgetsApp().run()
使用 background_color
属性 并将 alpha 通道设置为 0:
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
class ExampleScreen(Screen):
pass
class ExampleManager(ScreenManager):
pass
root_widget = Builder.load_string('''
ExampleManager:
ExampleScreen:
<ExampleScreen>:
name: 'example_screen'
TextInput:
id: t_1
text: 'Test text in input 1'
size_hint: .5, .5
pos_hint: {'x': 0, 'y': .5}
multiline: True
readonly: True
foreground_color: (1,0,1,1)
background_color: (0,0,0,0)
TextInput:
id: t_2
text: 'Test text in input 2'
size_hint: .5, .5
pos_hint: {'x': 0, 'y': 0}
multiline: True
readonly: True
foreground_color: (1,1,0,1)
background_color: (0,0,0,0)
''')
class TestWidgetsApp(App):
def build(self):
self.title = 'Proj'
return root_widget
TestWidgetsApp().run()