Skip to content

Instantly share code, notes, and snippets.

@tshirtman
Forked from mike-perdide/gist:4091543
Created November 16, 2012 22:39
Show Gist options
  • Save tshirtman/4091569 to your computer and use it in GitHub Desktop.
Save tshirtman/4091569 to your computer and use it in GitHub Desktop.
"""
What I'm trying to do is draw a border around my widget.
Here, an AsyncImage.
"""
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.gridlayout import GridLayout
from kivy.uix.tabbedpanel import TabbedPanel
Builder.load_string("""
<TestWidget>
default_tab_content: normal_panel
default_tab_text: "Normal"
TabbedPanel:
id: normal_panel
default_tab_content: first_tab
tab_pos: "top_mid"
pos_hint: { "center_x": .5, "center_y": .5}
GridLayout:
id: first_tab
cols: 2
canvas:
Color:
rgb: 0, .20, .30
Rectangle:
size: self.size
pos: self.pos
Label:
text: "Let's"
font_size: 20
size_hint_y: None
height: 40
Label:
text: "Go"
font_size: 20
size_hint_y: None
height: 40
AsyncImage:
source: "http://mike.majerti.fr/2.png"
allow_stretch: True
canvas.after:
Color:
rgb: 0, .5, 0
Line:
points: self.pos[0], self.pos[1], self.pos[0], self.size[1]
Line:
points: self.pos[0], self.pos[1], self.size[0], self.pos[1]
Line:
points: self.size[0], self.pos[1], self.size[0], self.size[1]
Line:
points: self.pos[0], self.size[1], self.size[0], self.size[1]
Label:
text: "The mall"
font_size: 20
TabbedPanelHeader:
text: "Weird"
content: weird_panel
TabbedPanel:
id: weird_panel
default_tab_content: weird_tab
tab_pos: "bottom_mid"
tab_height: 100
pos_hint: { "center_x": .5, "center_y": .5}
GridLayout:
id: weird_tab
cols: 2
canvas:
Color:
rgb: 0, .20, .30
Rectangle:
size: self.size
pos: self.pos
Label:
text: "Let's"
font_size: 20
size_hint_y: None
height: 40
Label:
text: "Go"
font_size: 20
size_hint_y: None
height: 40
AsyncImage:
source: "http://mike.majerti.fr/2.png"
allow_stretch: True
canvas.after:
Color:
rgb: 1, 0, 0
Line:
points: self.pos[0], self.pos[1], self.pos[0], self.size[1]
Line:
points: self.pos[0], self.pos[1], self.size[0], self.pos[1]
Line:
points: self.size[0], self.pos[1], self.size[0], self.size[1]
Line:
points: self.pos[0], self.size[1], self.size[0], self.size[1]
Label:
text: "The mall"
font_size: 20
TabbedPanelHeader:
text: "Weirder"
content: weirder_panel
TabbedPanel:
id: weirder_panel
default_tab_content: weirder_tab
tab_pos: "bottom_mid"
tab_height: 100
size_hint: .8, .8
pos_hint: { "center_x": .5, "center_y": .5}
GridLayout:
id: weirder_tab
cols: 2
canvas:
Color:
rgb: 0, .20, .30
Rectangle:
size: self.size
pos: self.pos
Label:
text: "Let's"
font_size: 20
size_hint_y: None
height: 40
Label:
text: "Go"
font_size: 20
size_hint_y: None
height: 40
AsyncImage:
source: "http://mike.majerti.fr/2.png"
allow_stretch: True
canvas.after:
Color:
rgb: 1, 0, 0
Line:
points: self.pos[0], self.pos[1], self.pos[0], self.size[1]
Line:
points: self.pos[0], self.pos[1], self.size[0], self.pos[1]
Line:
points: self.size[0], self.pos[1], self.size[0], self.size[1]
Line:
points: self.pos[0], self.size[1], self.size[0], self.size[1]
Label:
text: "The mall"
font_size: 20
""")
class TestWidget(TabbedPanel):
pass
class TestApp(App):
def build(self):
widget = TestWidget()
return widget
if __name__ == "__main__":
TestApp().run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment