예제 #1
0
    def build(self):
        painterW = Back()
        bl = BoxLayout(orientation='vertical', size=(411, 730))
        blButton = BoxLayout(orientation='vertical', size=(411, 730))

        header = BoxLayout(orientation='horizontal',
                           size_hint=(None, None),
                           size=(411, 158),
                           spacing=257,
                           padding=(5, 0, 5, 95))

        #header.add_widget(Image(source='img/catalog.png', size_hint=(None, None)))
        header.add_widget(
            Button(background_normal='img/catalog.png',
                   size_hint=(None, None),
                   size=(72, 55)))
        bl.add_widget(Image(source='img/logo.png', size_hint=(1, 1)))
        header.add_widget(
            Button(background_normal='img/basket.png',
                   size_hint=(None, None),
                   size=(72, 61)))
        blButton.add_widget(header)

        blButton.add_widget(Widget(size_hint=(None, None), size=(411, 41)))
        menu = BoxLayout(size_hint=(None, None), size=(411, 41))
        menu.add_widget(
            Label(text=('МЕНЮ ДОСТАВКИ'), font_size='17sp',
                  color=(0, 0, 0, 1)))
        bl.add_widget(menu)

        #кнопки

        catalog1 = BoxLayout(orientation='horizontal',
                             size_hint=(None, None),
                             size=(411, 131),
                             spacing=63,
                             padding=(15, 0, 0, 14))
        catalog1.add_widget(
            Image(source='img/pizza.png', size_hint=(None, None)))
        catalog1.add_widget(
            Label(text='ПИЦЦА',
                  font_size='26sp',
                  color=(.44, .15, .16, 1),
                  size_hint=(None, None)))
        button1 = Button(background_color=[0, 0, 0, 0],
                         size_hint=(None, None),
                         size=(411, 131))
        blButton.add_widget(button1)
        bl.add_widget(catalog1)

        bl.add_widget(Widget(size_hint=(None, None), size=(411, 2)))
        catalog2 = BoxLayout(orientation='horizontal',
                             size_hint=(None, None),
                             size=(411, 131),
                             spacing=62,
                             padding=(15, 0, 0, 14))
        catalog2.add_widget(
            Image(source='img/rolls.png', size_hint=(None, None)))
        catalog2.add_widget(
            Label(text='РОЛЛЫ',
                  font_size='26sp',
                  color=(.44, .15, .16, 1),
                  size_hint=(None, None)))
        blButton.add_widget(Widget(size_hint=(None, None), size=(411, 2)))
        button2 = Button(background_color=[0, 0, 0, 0],
                         size_hint=(None, None),
                         size=(411, 131))
        blButton.add_widget(button2)
        bl.add_widget(catalog2)

        bl.add_widget(Widget(size_hint=(None, None), size=(411, 2)))
        catalog3 = BoxLayout(orientation='horizontal',
                             size_hint=(None, None),
                             size=(411, 131),
                             spacing=69,
                             padding=(15, 0, 0, 14))
        catalog3.add_widget(
            Image(source='img/salads.png', size_hint=(None, None)))
        catalog3.add_widget(
            Label(text='САЛАТЫ',
                  font_size='26sp',
                  color=(.44, .15, .16, 1),
                  size_hint=(None, None)))
        blButton.add_widget(Widget(size_hint=(None, None), size=(411, 2)))
        button3 = Button(background_color=[0, 0, 0, 0],
                         size_hint=(None, None),
                         size=(411, 131))
        blButton.add_widget(button3)
        bl.add_widget(catalog3)

        bl.add_widget(Widget(size_hint=(None, None), size=(411, 2)))
        catalog4 = BoxLayout(orientation='horizontal',
                             size_hint=(None, None),
                             size=(411, 131),
                             spacing=77,
                             padding=(15, 0, 0, 14))
        catalog4.add_widget(
            Image(source='img/dessert.png', size_hint=(None, None)))
        catalog4.add_widget(
            Label(text='ДЕСЕРТЫ',
                  font_size='26sp',
                  color=(.44, .15, .16, 1),
                  size_hint=(None, None)))
        blButton.add_widget(Widget(size_hint=(None, None), size=(411, 2)))
        button4 = Button(
            background_color=[0, 0, 0, 0],  #Проверить есть ли она 
            size_hint=(None, None),
            size=(411, 131))
        blButton.add_widget(button4)
        bl.add_widget(catalog4)

        painterW.add_widget(bl)
        painterW.add_widget(blButton)
        return painterW
예제 #2
0
 def build(self):
     params.init()
     top = Widget()
     top.add_widget(Menu())
     return top
예제 #3
0
 def remove_icon_right():
     self.ids.box.remove_widget(self.ids.icon_right)
     self.add_widget(Widget(size_hint_x=None, width=dp(48)))
예제 #4
0
 def setUp(self):
     from kivy.uix.widget import Widget
     self.cls = Widget
     self.root = Widget()
예제 #5
0
    def build(self):
        layout = GridLayout(cols=3)

        # create renderer
        self.renderer = Renderer(size_hint=(5, 5))
        self.renderer.set_clear_color(
            (0.1, 0.1, 0.1, 1)
        )  # rgba

        # create scene
        scene = Scene()
        self.cubes = []

        # create cubes for scene
        #
        # default pure green cube
        cube_geo = BoxGeometry(.3, .3, .3)
        cube_mat = Material(
            color=(0, 0.5, 0)  # base color
        )
        self.cubes.append(Mesh(
            geometry=cube_geo,
            material=cube_mat
        ))  # default pos == (0, 0, 0)
        self.cubes[0].pos.z = -5
        self.cubes[0].pos.x = 1
        self.cubes[0].pos.y = 0.8
        self.cubes[0].rotation.x = 45

        # black cube, red shadow, half-transparent
        cube_geo = BoxGeometry(.3, .3, .3)
        cube_mat = Material(
            transparency=0.5,
            color=(0, 0, 0),  # base color
            diffuse=(10, 0, 0),  # color of "shadows"
            specular=(0, 0, 0)  # mirror-like reflections
        )
        self.cubes.append(Mesh(
            geometry=cube_geo,
            material=cube_mat
        ))  # default pos == (0, 0, 0)
        self.cubes[1].pos.z = -5
        self.cubes[1].pos.x = -1
        self.cubes[1].pos.y = 0.8
        self.cubes[1].rotation.y = 45

        # default pure green cube with red reflections
        cube_geo = BoxGeometry(.3, .3, .3)
        cube_mat = Material(
            transparency=1,
            color=(0, 0.5, 0),  # base color
            diffuse=(0, 0, 0),  # color of "shadows"
            specular=(10, 0, 0)  # mirror-like reflections
        )
        self.cubes.append(Mesh(
            geometry=cube_geo,
            material=cube_mat
        ))  # default pos == (0, 0, 0)
        self.cubes[2].pos.z = -5
        self.cubes[2].pos.x = 1
        self.cubes[2].pos.y = -0.8
        self.cubes[2].rotation.z = 45

        # black cube with red reflections
        # and half-transparent
        cube_geo = BoxGeometry(.3, .3, .3)
        cube_mat = Material(
            transparency=0.5,
            color=(0, 0, 0),  # base color
            specular=(10, 0, 0)  # mirror-like reflections
        )
        self.cubes.append(Mesh(
            geometry=cube_geo,
            material=cube_mat
        ))  # default pos == (0, 0, 0)
        self.cubes[3].pos.z = -5
        self.cubes[3].pos.x = -1
        self.cubes[3].pos.y = -0.8
        self.cubes[3].rotation.x = 45

        cube_geo = BoxGeometry(.3, .3, .3)
        cube_mat = Material(
            transparency=0.5,
            color=(0, 0, 0),  # base color
            specular=(10, 0, 0)
        )
        self.main_cube = Mesh(
            geometry=cube_geo,
            material=cube_mat
        )  # default pos == (0, 0, 0)
        self.main_cube.rotation.x = 45
        self.main_cube.rotation.y = 45
        self.main_cube.pos.z = -5
        scene.add(self.main_cube)

        planes = [
            ((0, 0, -10), (0, 0, 0)),
            ((-10, 0, 0), (0, -90, 0)),
            ((10, 0, 0), (0, 90, 0)),
            ((0, 0, 10), (0, 180, 0))
        ]  # position and rotation changes
        for plane in planes:
            geo = BoxGeometry(5, 5, .1)
            mat = Material(
                color=(1, 1, 1)
            )
            mesh = Mesh(
                geometry=geo,
                material=mat
            )
            mesh.pos.x += plane[0][0]
            mesh.pos.y += plane[0][1]
            mesh.pos.z += plane[0][2]
            mesh.rot.x += plane[1][0]
            mesh.rot.y += plane[1][1]
            mesh.rot.z += plane[1][2]
            scene.add(mesh)

        # create camera for scene
        self.camera = PerspectiveCamera(
            fov=75,    # distance from the screen
            aspect=0,  # "screen" ratio
            near=.1,    # nearest rendered point
            far=1000     # farthest rendered point
        )

        # start rendering the scene and camera
        for cube in self.cubes:
            scene.add(cube)
        self.renderer.render(scene, self.camera)

        # set renderer ratio is its size changes
        # e.g. when added to parent
        self.renderer.bind(size=self._adjust_aspect)

        layout.add_widget(Factory.CamRot())
        layout.add_widget(Factory.LightPanel())
        layout.add_widget(Factory.CamStrafe())
        layout.add_widget(Widget())

        layout.add_widget(self.renderer)

        layout.add_widget(Label(text='+\n\nY\n\n-'))
        layout.add_widget(Factory.CamNav())
        layout.add_widget(Label(text='-      X      +'))
        layout.add_widget(Factory.ObjNav())

        Clock.schedule_interval(self.rotate_cube, .01)
        Clock.schedule_interval(self.scale_cube, 1)

        # keyboard listener
        Listener()
        return layout
예제 #6
0
 def test_if_avertissement(self):
     ap = MyDevoirsApp()
     w = Widget()
     ap.avertissement = w
     assert ap.build() == w
예제 #7
0
파일: main2.py 프로젝트: JustChasti/testr
    def build(self):
        self.theflag = 0
        self.theflag0 = 0
        self.distan = 1000  # дистанция до начальной точки (0,0,-50) что бы ничего не было за экраном (надо будет выстваить на изменение)
        bl = BoxLayout(orientation='vertical',
                       size_hint=(.15, 1),
                       spacing=10,
                       padding=10)  # левая панель
        al = AnchorLayout(anchor_x='left',
                          anchor_y='center')  # основная система интерфейса
        layout = GridLayout(cols=2, spacing=3,
                            size_hint=(1, 1))  #сетка для кнопок поворота

        matrix = np.load('matrix0.npy', allow_pickle=True)
        counter = int(int(matrix.size) / 2)
        x = np.zeros(counter)
        y = np.zeros(counter)
        z = np.zeros(counter)
        soe = np.zeros((counter, counter))

        for i in range(2):
            if (i == 0):
                for j in range(counter):
                    for k in range(3):
                        a = matrix[i, j]
                        if (k == 0):
                            x[j] = a[k] * 10
                        elif (k == 1):
                            y[j] = a[k] * 10
                        else:
                            z[j] = a[k] * 10
            else:
                for j in range(counter):
                    a = matrix[i, j]
                    for k in range(counter):
                        soe[j][k] = a[k]
        print(x, y, z)
        print(soe)
        # кнопка загрузки координат
        loader = Button(text='Load', on_press=self.load)
        bl.add_widget(loader)

        #starter = Button(text='Построить', on_press = self.letstart)
        #bl.add_widget(starter)

        bl.add_widget(Widget())
        # create renderer
        self.renderer = Renderer()

        # create scene
        scene = Scene()

        #lines
        k0 = 0
        k1 = 0
        lines_list = []
        for i in soe:
            for j in i:
                if (j == 1):
                    line0_geo = BoxGeometry(
                        1,
                        int(((y[k0] - y[k1])**2 + (x[k0] - x[k1])**2 +
                             (z[k0] - z[k1])**2)**0.5), 1)
                    #print(int(((abs(x[k0]-x[k1]) + abs(y[k0]-y[k1])+ abs(z[k0]-z[k1]))**0.5)),'length')
                    #print(int(abs(y[k0]-y[k1]) + abs(x[k0]-x[k1])+ abs(z[k0]-z[k1])))
                    line0_mat = Material()
                    self.line0 = Mesh(
                        geometry=line0_geo,
                        material=line0_mat)  # default pos == (0, 0, 0)
                    self.line0.pos.x = int((x[k0] + x[k1]) / 2)
                    self.line0.pos.y = int((y[k0] + y[k1]) / 2)
                    self.line0.pos.z = int((z[k0] + z[k1]) / 2) - self.distan
                    if y[k0] - y[k1] == 0 and x[k0] - x[
                            k1] == 0 and z[k0] - z[k1] != 0:
                        self.line0.rotation.x = 90
                    elif y[k0] - y[k1] == 0 and x[k0] - x[k1] != 0 and z[
                            k0] - z[k1] == 0:
                        self.line0.rotation.z = 90
                    elif y[k0] - y[k1] != 0 and x[k0] - x[k1] == 0 and z[
                            k0] - z[k1] == 0:
                        ###
                        fff = 0
                    elif y[k0] - y[k1] != 0 and x[k0] - x[k1] != 0 and z[
                            k0] - z[k1] == 0:
                        self.line0.rotation.z = math.atan(
                            (x[k0] - x[k1]) / (y[k0] - y[k1])) / math.pi * 180
                    elif y[k0] - y[k1] != 0 and x[k0] - x[
                            k1] == 0 and z[k0] - z[k1] != 0:
                        #self.line0.rotation.x = math.atan((z[k0]-z[k1])/(y[k0]-y[k1]))/math.pi*180
                        self.line0.rotation.x = math.acos(
                            abs(y[k0] - y[k1]) /
                            ((x[k0] - x[k1])**2 + (y[k0] - y[k1])**2 +
                             (z[k0] - z[k1])**2)**0.5) / math.pi * 180
                        #print()
                    elif y[k0] - y[k1] == 0 and x[k0] - x[k1] != 0 and z[
                            k0] - z[k1] != 0:
                        self.line0.rotation.z = math.atan(
                            (x[k0] - x[k1]) /
                            (z[k0] - z[k1])) / math.pi * 180 * -1
                        self.line0.rotation.x = 90

                    ###
                    elif y[k0] - y[k1] != 0 and x[k0] - x[k1] != 0 and z[
                            k0] - z[k1] != 0:
                        if ((x[k0] < x[k1] and y[k0] < y[k1])
                                or (x[k0] > x[k1] and y[k0] > y[k1])):
                            #self.line0.rotation.z = math.atan((abs(z[k0]-z[k1]))/1.5/(abs(y[k0]-y[k1])))/math.pi*180
                            self.line0.rotation.z = math.acos(
                                abs(y[k0] - y[k1]) /
                                ((x[k0] - x[k1])**2 + (y[k0] - y[k1])**2 +
                                 (0)**2)**0.5) / math.pi * 180 * -1
                            #проблема
                        else:
                            self.line0.rotation.z = math.acos(
                                abs(y[k0] - y[k1]) /
                                ((x[k0] - x[k1])**2 + (y[k0] - y[k1])**2 +
                                 (0)**2)**0.5) / math.pi * 180
                        #self.line0.rotation.x = math.atan((1.25*abs(x[k0]-x[k1]))/(abs(y[k0]-y[k1])))/math.pi*180*-1
                        if ((z[k0] < z[k1] and y[k0] < y[k1])
                                or (z[k0] > z[k1] and y[k0] > y[k1])):
                            self.line0.rotation.x = math.acos(
                                abs(y[k0] - y[k1]) /
                                ((0)**2 + (y[k0] - y[k1])**2 +
                                 (z[k0] - z[k1])**2)**0.5) / math.pi * 180
                            #проблема
                        else:
                            self.line0.rotation.x = math.acos(
                                abs(y[k0] - y[k1]) /
                                ((0)**2 + (y[k0] - y[k1])**2 +
                                 (z[k0] - z[k1])**2)**0.5) / math.pi * 180 * -1

                        #self.line0.rotation.x = math.acos(abs(y[k0]-y[k1])/((0)**2+(y[k0]-y[k1])**2+(z[k0]-z[k1])**2)**0.5)/math.pi*180*-1#there
                        print(self.line0.rotation.z)
                        print(self.line0.rotation.x)
                    lines_list.append(self.line0)
                k1 += 1
            k0 += 1
            k1 = 0
        line0_geo = BoxGeometry(1, y[1] - y[0], 1)
        line0_mat = Material()
        self.line0 = Mesh(geometry=line0_geo,
                          material=line0_mat)  # default pos == (0, 0, 0)
        self.line0.pos.z = int(z[0]) - self.distan

        #self.line3.rotation.x = 90

        #points
        point_list = []
        sumx = 0
        sumy = 0
        sumz = 0
        sumcount = 0
        loader = OBJLoader()

        for i in range(counter):
            point_geom = SphereGeometry(1.1)
            point_mat = Material()
            self.point0 = Mesh(geometry=point_geom, material=point_mat)
            self.point0.pos.x = int(x[i])
            self.point0.pos.y = int(y[i])
            self.point0.pos.z = int(z[i]) - self.distan
            self.point0.scale = (1, 1, 1)
            point_list.append(self.point0)
            sumx += self.point0.pos.x
            sumy += self.point0.pos.y
            sumz += self.point0.pos.z
            sumcount += 1
            #scene.add(self.point0)

        point_geom = SphereGeometry()
        point_mat = Material()
        self.point1 = Mesh(geometry=point_geom, material=point_mat)
        self.point1.pos.x = sumx / sumcount
        self.point1.pos.y = sumy / sumcount
        self.point1.pos.z = sumz / sumcount
        self.point1.scale = (1, 1, 1)
        #scene.add(self.point1)
        self.camera = PerspectiveCamera(
            fov=100,  # размер окна т.е. чем больше фов тем больше масштаб
            aspect=0,  # "screen" ratio
            near=1,  # рендер от
            far=10000  # дистанция рендера
        )

        k0 = 0
        self.ll = []
        for i in soe:
            for j in i:
                if (j == 1):
                    self.ll.append(lines_list[k0])
                    scene.add(lines_list[k0])
                    k0 += 1

        for i in range(counter):
            scene.add(point_list[i])
            pass

        self.pp = point_list
        self.renderer.render(scene, self.camera)
        self.renderer.bind(size=self._adjust_aspect)
        al.add_widget(self.renderer)
        bl.add_widget(Factory.Fov())
        bl.add_widget(Factory.CamNav())
        al.add_widget(bl)
        return al
예제 #8
0
 def build(self):
     return Widget()
예제 #9
0
    def build(self):
        self.formula = '0'
        bl = BoxLayout(orientation='vertical', padding=[10])
        gl = GridLayout(cols=4, spacing=3, size_hint=(1, .65))

        self.lbl = Label(text='0',
                         font_size=28,
                         size_hint=(1, .35),
                         text_size=(ww - 20, wh * .35 - 20),
                         halign='right',
                         valign='center',
                         color=[0, 0, 0, 1])
        bl.add_widget(self.lbl)

        gl.add_widget(
            Button(text='Clear',
                   on_press=self.clear,
                   background_color=colorDeleteBtn,
                   background_normal='',
                   color=colorBtn))
        gl.add_widget(Widget())
        gl.add_widget(Widget())
        gl.add_widget(
            Button(text='⌫',
                   on_press=self.backSpace,
                   font_name='DejaVuSans.ttf',
                   font_size=17,
                   background_color=colorDeleteBtn,
                   background_normal='',
                   color=colorBtn))

        gl.add_widget(
            Button(text='7',
                   on_press=self.add_number,
                   font_size=fsBtn,
                   background_color=bgcBtn,
                   background_normal='',
                   color=colorBtn))
        gl.add_widget(
            Button(text='8',
                   on_press=self.add_number,
                   font_size=fsBtn,
                   background_color=bgcBtn,
                   background_normal='',
                   color=colorBtn))
        gl.add_widget(
            Button(text='9',
                   on_press=self.add_number,
                   font_size=fsBtn,
                   background_color=bgcBtn,
                   background_normal='',
                   color=colorBtn))
        gl.add_widget(
            Button(text='×',
                   on_press=self.add_operatinon,
                   font_size=fsBtn,
                   background_color=colorOperatBtn,
                   background_normal='',
                   color=colorBtn))

        gl.add_widget(
            Button(text='4',
                   on_press=self.add_number,
                   font_size=fsBtn,
                   background_color=bgcBtn,
                   background_normal='',
                   color=colorBtn))
        gl.add_widget(
            Button(text='5',
                   on_press=self.add_number,
                   font_size=fsBtn,
                   background_color=bgcBtn,
                   background_normal='',
                   color=colorBtn))
        gl.add_widget(
            Button(text='6',
                   on_press=self.add_number,
                   font_size=fsBtn,
                   background_color=bgcBtn,
                   background_normal='',
                   color=colorBtn))
        gl.add_widget(
            Button(text='÷',
                   on_press=self.add_operatinon,
                   font_size=fsBtn,
                   background_color=colorOperatBtn,
                   background_normal='',
                   color=colorBtn))

        gl.add_widget(
            Button(text='1',
                   on_press=self.add_number,
                   font_size=fsBtn,
                   background_color=bgcBtn,
                   background_normal='',
                   color=colorBtn))
        gl.add_widget(
            Button(text='2',
                   on_press=self.add_number,
                   font_size=fsBtn,
                   background_color=bgcBtn,
                   background_normal='',
                   color=colorBtn))
        gl.add_widget(
            Button(text='3',
                   on_press=self.add_number,
                   font_size=fsBtn,
                   background_color=bgcBtn,
                   background_normal='',
                   color=colorBtn))
        gl.add_widget(
            Button(text='+',
                   on_press=self.add_operatinon,
                   font_size=fsBtn,
                   background_color=colorOperatBtn,
                   background_normal='',
                   color=colorBtn))

        gl.add_widget(
            Button(text='.',
                   on_press=self.add_number,
                   font_size=fsBtn2,
                   background_color=bgcBtn,
                   background_normal='',
                   color=colorBtn))
        gl.add_widget(
            Button(text='0',
                   on_press=self.add_number,
                   font_size=fsBtn,
                   background_color=bgcBtn,
                   background_normal='',
                   color=colorBtn))
        gl.add_widget(
            Button(text='=',
                   on_press=self.get_result,
                   font_size=fsBtn,
                   background_color=colorResultBtn,
                   background_normal='',
                   color=colorBtn))
        gl.add_widget(
            Button(text='-',
                   on_press=self.add_operatinon,
                   font_size=fsBtn2,
                   background_color=colorOperatBtn,
                   background_normal='',
                   color=colorBtn))

        bl.add_widget(gl)
        return bl
예제 #10
0
 def howitworksbutton(self, *latgs):
     page = Widget()
     self.clear_widgets()
     self.add_widget(page)
     button1 = Button(text='Home',
                      background_normal='bottone3.png',
                      size_hint=(0.11, 0.10),
                      pos_hint={
                          'center_x': .1,
                          'center_y': .1
                      })
     button1.bind(on_press=self.start)
     self.add_widget(button1)
     label1 = Label(
         text=
         '1) Assemble the smartphone adaptor \n\n2) Add sample to T1-T2 wells \n\n3) Incubate 30 min \n\n4) Add BL substrate \n\n5) Insert cartridge into the adaptor \n\n6) Acquire BL image & Read result',
         color=(1, 1, 1, .9),
         font_size='15sp',
         pos_hint={
             'center_x': .24,
             'center_y': .56
         })
     self.add_widget(label1)
     button2 = Image(source='./app1-2.png',
                     size_hint=(0.15, 0.21),
                     pos_hint={
                         'center_x': .7,
                         'center_y': .75
                     })
     self.add_widget(button2)
     button3 = Image(source='./app2-1.png',
                     size_hint=(0.20, 0.26),
                     pos_hint={
                         'center_x': .85,
                         'center_y': .77
                     })
     self.add_widget(button3)
     button4 = Image(source='./app3-2.png',
                     size_hint=(0.15, 0.21),
                     pos_hint={
                         'center_x': .7,
                         'center_y': .52
                     })
     self.add_widget(button4)
     button5 = Image(source='./app4-2.png',
                     size_hint=(0.20, 0.26),
                     pos_hint={
                         'center_x': .85,
                         'center_y': .50
                     })
     self.add_widget(button5)
     button6 = Image(source='./app8-2.png',
                     size_hint=(0.25, 0.31),
                     pos_hint={
                         'center_x': .78,
                         'center_y': .2
                     })
     self.add_widget(button6)
     button4 = Button(text='Begin',
                      background_normal='bottone3.png',
                      size_hint=(0.21, 0.11),
                      bold=True,
                      font_size='20sp',
                      pos_hint={
                          'center_x': .5,
                          'center_y': .1
                      })
     button4.bind(on_press=self.analysis)
     self.add_widget(button4)
     label = Button(text='Procedure',
                    background_normal='bottone3.png',
                    size_hint=(0.31, 0.12),
                    bold=True,
                    font_size='20sp',
                    color=(1, 1, 1, .9),
                    valign='top',
                    pos_hint={
                        'center_x': .5,
                        'center_y': .92
                    })
     pict = Image(source='./logo.png',
                  size_hint=(1, .16),
                  pos_hint={
                      'center_x': .68,
                      'center_y': .92
                  })
     self.add_widget(label)
     self.add_widget(pict)
예제 #11
0
    def __init__(self, **kwargs):
        # make sure we aren't overriding any important functionality
        super(Widgets, self).__init__(**kwargs)
        Config.set('graphics', 'width', '1800')
        Config.set('graphics', 'height', '900')
        Config.write()

        root = Widget()
        print "root.width: %f" % root.width
        print "root.height: %f" % root.height
        self.add_widget(
            AsyncImage(source=str(Global.image_url),
                       pos=(-root.width * 6, root.height * 3.25)))
        self.add_widget(
            Label(text='@' + str(Global.screen_name),
                  pos=(-root.width * 6, root.height * 2)))
        self.add_widget(
            Label(text="location: " + str(Global.location),
                  pos=(-root.width * 6, root.height * 1.3)))
        self.add_widget(
            Label(text="verified: " + str(Global.verified),
                  pos=(-root.width * 6, root.height)))
        self.add_widget(
            Label(text="on Twitter since: " + str(Global.created_at),
                  pos=(-root.width * 6, root.height * 0.7)))
        self.add_widget(
            Label(text="description:\n" + str(Global.description),
                  pos=(-root.width * 6, root.height * 0.3)))
        self.add_widget(
            Label(text=str(Global.tweets) + "\ntweets",
                  pos=(-root.width * 3, root.height * 3.5)))
        self.add_widget(
            Label(text=str(Global.followers) + "\nfollowers",
                  pos=(-root.width, root.height * 3.5)))
        self.add_widget(
            Label(text=str(Global.following) + "\nfollowing",
                  pos=(root.width, root.height * 3.5)))
        self.add_widget(
            Label(text=str(Global.average_tweet_time) + "\naverage tweet time",
                  pos=(root.width * 5, root.height * 4)))
        self.add_widget(
            Label(text=str(Global.average_tweet_retweets) +
                  "\naverage retweets in tweets",
                  pos=(root.width * 5, root.height * 3)))
        self.add_widget(
            Label(text=str(Global.average_tweet_favorites) +
                  "\naverage favorites in tweets",
                  pos=(root.width * 5, root.height * 2)))
        self.add_widget(
            Label(text=str(Global.followback_percentage),
                  pos=(-root.width * .4, root.height * 1.5)))
        self.add_widget(
            Image(source=str(Global.wordcloud_tweets_image),
                  pos=(root.width * 0.35, root.height),
                  size_hint_y=None,
                  height=350))
        if (Global.hashtags_found > 0):
            self.add_widget(
                Image(source=str(Global.wordcloud_hashtags_image),
                      pos=(-root.width * 6, root.height),
                      size_hint_y=None,
                      height=350))
        self.add_widget(
            Label(text="most tweets per day: " +
                  str(Global.most_tweets_per_day) + " on " +
                  str(Global.most_tweets_day),
                  pos=(-root.width * .6, root.height * 0.6)))
        self.add_widget(
            Label(text="5 most recent tweets: ",
                  pos=(-root.width * .6, -root.height * 3.5)))
        carousel = Carousel(direction='right')
        for i in range(5):
            tweet_layout = FloatLayout()
            tweet_layout.add_widget(
                Label(text="#" + str(i + 1) + ":\n" +
                      Global.five_latest_tweets[i],
                      pos=(-root.width * .6, -root.height * 3.8)))
            tweet_layout.add_widget(
                Image(source=str('img/date.png'),
                      pos=(-root.width * 1.8, 0),
                      size_hint_y=None,
                      height=35))
            tweet_layout.add_widget(
                Image(source=str('img/retweets.png'),
                      pos=(-root.width * 0.5, 0),
                      size_hint_y=None,
                      height=35))
            tweet_layout.add_widget(
                Image(source=str('img/likes.png'),
                      pos=(root.width * 0.2, 0),
                      size_hint_y=None,
                      height=35))
            tweet_layout.add_widget(
                Label(text=Global.five_latest_dates[i],
                      pos=(-root.width * 1.2, -root.height * 4.32)))
            tweet_layout.add_widget(
                Label(text=Global.five_latest_retweets[i],
                      pos=(-root.width * 0.2, -root.height * 4.32)))
            tweet_layout.add_widget(
                Label(text=Global.five_latest_likes[i],
                      pos=(root.width * 0.5, -root.height * 4.32)))
            carousel.add_widget(tweet_layout)
        carousel.disabled = True
        carousel.opacity = 6
        carousel.loop = True
        self.add_widget(carousel)
        timeline.create()
        self.add_widget(
            Image(source='png/' + str(Global.screen_name) + '_gantt.png',
                  pos=(root.width * 6.35, root.height * 1.5),
                  size_hint_y=None,
                  height=380))
        if (Global.fishy_followers != 0):
            self.add_widget(
                Image(source='img/warning.png',
                      pos=(-root.width * 2, root.height * 6.5),
                      size_hint_y=None,
                      height=35))
            self.add_widget(
                Label(text=str(Global.fishy_followers) +
                      " suspicious followers found",
                      pos=(-root.width * 0.8, root.height * 2.15)))

        def printit():
            if (self.run_carousel):
                threading.Timer(5.0, printit).start()
                # print "RUNNING THREAD!"
                carousel.load_next(mode='next')

        printit()
예제 #12
0
 def build(self):
     global pop_size
     pop_size = (Window.width / 1.6, Window.height / 1.2)
     print(pop_size)
     self.root = Widget()
     self.paint = PaintWindow()
     btn_col = (uniform(0, 1), uniform(0, 1), uniform(0, 1), 1)
     self._100 = Window.width / 8
     self._50 = Window.width / 16
     self._150 = Window.width / (5 + 1 / 3)
     self._100_100 = (Window.width / 8, Window.height / 6)
     self._150_100 = (Window.width / (5 + 1 / 3), Window.height / 6)
     self._50_100 = (Window.width / 16, Window.height / 6)
     self.font_15 = self._100 / (6 + 2 / 3)
     self.clear_btn = Button(text='Clear',
                             background_color=btn_col,
                             on_release=self.clear_canvas,
                             pos=(0, 0),
                             size=self._100_100,
                             font_size=self.font_15)
     self.save_btn_jpg = Button(text='Save as JPG',
                                background_color=btn_col,
                                on_release=self.save_canvas,
                                pos=(self._100, 0),
                                size=self._150_100,
                                font_size=self.font_15)
     self.select_col_btn = Button(text='Select a Color',
                                  background_color=btn_col,
                                  on_release=lambda for_kivy: popup.pop(
                                      'Select a Color',
                                      clr_pkr(self.paint.canvas).pk()),
                                  pos=(self._100 + (self._150 or 250), 0),
                                  size=self._150_100,
                                  font_size=self.font_15)
     self.erase_btn = Button(
         text='Erase',
         background_color=btn_col,
         on_release=lambda for_kivy: self.paint.canvas.add(Color(
             1, 1, 1, 1)),
         pos=(self._100 + (self._150 or 250) + self._150, 0),
         size=self._100_100,
         font_size=self.font_15)
     self.pt_10 = Button(
         text='10 PX',
         background_color=btn_col,
         on_release=lambda for_kivy: self.paint.set_shape_size(10, 10),
         pos=(self._100 + (self._150 or 250) + self._150 + self._100, 0),
         size=self._50_100,
         font_size=self.font_15)
     self.pt_20 = Button(
         text='20 PX',
         background_color=btn_col,
         on_release=lambda for_kivy: self.paint.set_shape_size(20, 20),
         pos=(self._100 + (self._150 or 250) + self._150 + self._100 +
              self._50, 0),
         size=self._50_100,
         font_size=self.font_15)
     self.pt_30 = Button(
         text='30 PX',
         background_color=btn_col,
         on_release=lambda for_kivy: self.paint.set_shape_size(30, 30),
         pos=(self._100 + (self._150 or 250) + self._150 + self._100 +
              self._50 * 2, 0),
         size=self._50_100,
         font_size=self.font_15)
     self.pt_40 = Button(
         text='40 PX',
         background_color=btn_col,
         on_release=lambda for_kivy: self.paint.set_shape_size(40, 40),
         pos=(self._100 + (self._150 or 250) + self._150 + self._100 +
              self._50 * 3, 0),
         size=self._50_100,
         font_size=self.font_15)
     self.pt_50 = Button(
         text='50 PX',
         background_color=btn_col,
         on_release=lambda for_kivy: self.paint.set_shape_size(50, 50),
         pos=(self._100 + (self._150 or 250) + self._150 + self._100 +
              self._50 * 4, 0),
         size=self._50_100,
         font_size=self.font_15)
     self.pt_60 = Button(
         text='60 PX',
         background_color=btn_col,
         on_release=lambda for_kivy: self.paint.set_shape_size(60, 60),
         pos=(self._100 + (self._150 or 250) + self._150 + self._100 +
              self._50 * 5, 0),
         size=self._50_100,
         font_size=self.font_15)
     self.cir_btn = Button(
         text='Circle',
         background_color=btn_col,
         on_release=lambda for_kivy: self.paint.set_shape('cir'),
         pos=(self._100 + (self._150 or 250) + self._150 + self._100 +
              self._50 * 5 + 5, Window.height - Window.height / 6),
         size=(Window.width - (self._100 + (self._150 or 250) + self._150 +
                               self._100 + self._50 * 5 + 5),
               Window.height / 6),
         font_size=self.font_15)
     self.rec_btn = Button(
         text='Square',
         background_color=btn_col,
         on_release=lambda for_kivy: self.paint.set_shape('rec'),
         pos=(self._100 + (self._150 or 250) + self._150 + self._100 +
              self._50 * 5 + 5,
              Window.height - Window.height / 6 - Window.height / 6),
         size=(Window.width - (self._100 + (self._150 or 250) + self._150 +
                               self._100 + self._50 * 5 + 5),
               Window.height / 6),
         font_size=self.font_15 / 1.07)
     self.paint.canvas.add(
         Rectangle(pos=(0, 0), size=(Window.width, Window.height)))
     self.paint.canvas.add(
         Rectangle(source='Icon.png',
                   pos=(0, Window.height / 6 + 5),
                   size=(self._100 + (self._150 or 250) + self._150 +
                         self._100 + self._50 * 5,
                         Window.height - Window.height / 6 + 5)))
     self.root.add_widget(self.paint)
     self.root.add_widget(self.clear_btn)
     self.root.add_widget(self.save_btn_jpg)
     self.root.add_widget(self.select_col_btn)
     self.root.add_widget(self.erase_btn)
     self.root.add_widget(self.pt_10)
     self.root.add_widget(self.pt_20)
     self.root.add_widget(self.pt_30)
     self.root.add_widget(self.pt_40)
     self.root.add_widget(self.pt_50)
     self.root.add_widget(self.pt_60)
     self.root.add_widget(self.cir_btn)
     self.root.add_widget(self.rec_btn)
     self.root.canvas.add(Color(1, 1, 0, 1))
     self.root.canvas.add(
         Rectangle(pos=(0, Window.height / 6), size=(Window.width, 5)))
     self.root.canvas.add(
         Rectangle(pos=(self._100 + (self._150 or 250) + self._150 +
                        self._100 + self._50 * 5, Window.height / 6 + 5),
                   size=(5, Window.height - Window.height / 6)))
     self.paint.canvas.add(Color(0, 0, 0, 1))
     return self.root
예제 #13
0
    first_button = Button(text='Popup\nbutton')
    first_button.bind(on_release=popup.open)
    side_panel.add_widget(first_button)
    side_panel.add_widget(Button(text='Another\nbutton'))
    navigationdrawer.add_widget(side_panel)

    label_head = ('[b]Example label filling main panel[/b]\n\n[color=ff0000](p'
                  'ull from left to right!)[/color]\n\nIn this example, the le'
                  'ft panel is a simple boxlayout menu, and this main panel is'
                  ' a BoxLayout with a label and example image.\n\nSeveral pre'
                  'set layouts are available (see buttons below), but users ma'
                  'y edit every parameter for much more customisation.')
    main_panel = BoxLayout(orientation='vertical')
    label_bl = BoxLayout(orientation='horizontal')
    label = Label(text=label_head, font_size='15sp', markup=True, valign='top')
    label_bl.add_widget(Widget(size_hint_x=None, width=dp(10)))
    label_bl.add_widget(label)
    label_bl.add_widget(Widget(size_hint_x=None, width=dp(10)))
    main_panel.add_widget(Widget(size_hint_y=None, height=dp(10)))
    main_panel.add_widget(label_bl)
    main_panel.add_widget(Widget(size_hint_y=None, height=dp(10)))
    navigationdrawer.add_widget(main_panel)
    label.bind(size=label.setter('text_size'))

    def set_anim_type(name):
        navigationdrawer.anim_type = name

    def set_transition(name):
        navigationdrawer.opening_transition = name
        navigationdrawer.closing_transition = name
예제 #14
0
    def build(self):
        """Build the window and its contents"""
        Window.size = WINDOWSIZE
        Window.bind(on_key_down=self.key_down)
        Window.bind(on_key_up=self.key_up)
        Window.bind(on_resize=self.resized)

        def on_dropdown_select(btn):
            return lambda _, x: setattr(btn, 'text', x)

        self.octpanel = OctPanel(self,
                                 size=(1000, 1000),
                                 do_rotation=False,
                                 auto_bring_to_front=False)

        self.layerdd = DropDown()
        self.layerbtn = Button(text=BTNLAYER,
                               size=BTNSIZE,
                               size_hint=BTNHINT,
                               font_size=FNTSIZE)
        self.layerbtn.bind(on_release=self.layerdd.open)
        self.layerdd.bind(on_select=on_dropdown_select(self.layerbtn))
        self.layerbtn.disabled = True

        self.annodd = DropDown()
        for btname in [
                BTNFILTER, BTNADDLAYER, BTNDELLAYER, BTNSAVE, BTNRECOVER
        ]:
            btn = Button(text=btname,
                         size_hint_y=None,
                         height=BTNHEIGHT,
                         font_size=FNTSMALLSIZE)
            btn.bind(on_release=self.on_annotation)
            self.annodd.add_widget(btn)
        self.viewallbtn = ToggleButton(text=BTNVIEWALL[self.viewall],
                                       size_hint_y=None,
                                       height=BTNHEIGHT,
                                       font_size=FNTSMALLSIZE)
        self.viewallbtn.bind(on_release=self.on_viewall)
        self.annodd.add_widget(self.viewallbtn)
        self.isvisblebtn = ToggleButton(text=BTNISVISIBLE[self.isvisible],
                                        size_hint_y=None,
                                        height=BTNHEIGHT,
                                        font_size=FNTSMALLSIZE)
        self.isvisblebtn.bind(on_release=self.on_visible)
        self.annodd.add_widget(self.isvisblebtn)
        self.autosavebtn = ToggleButton(text=BTNAUTOSAVE[self.autosave],
                                        size_hint_y=None,
                                        height=BTNHEIGHT,
                                        font_size=FNTSMALLSIZE)
        self.autosavebtn.bind(on_release=self.on_autosave)
        self.annodd.add_widget(self.autosavebtn)
        self.annobtn = Button(text=BTNANNO,
                              size=BTNSIZE,
                              size_hint=BTNHINT,
                              font_size=FNTSIZE)
        self.annobtn.bind(on_release=self.annodd.open)
        self.annodd.bind(on_select=on_dropdown_select(self.annobtn))

        self.nextoctbtn = Button(text='OCT >>',
                                 size=BTNSIZE,
                                 size_hint=BTNHINT,
                                 font_size=FNTSIZE)
        self.nextoctbtn.bind(on_release=self.on_next_oct)
        self.prevoctbtn = Button(text='<< OCT',
                                 size=BTNSIZE,
                                 size_hint=BTNHINT,
                                 font_size=FNTSIZE)
        self.prevoctbtn.bind(on_release=self.on_prev_oct)
        self.nextscanbtn = Button(text='Scan >>',
                                  size=BTNSIZE,
                                  size_hint=BTNHINT,
                                  font_size=FNTSIZE)
        self.nextscanbtn.bind(on_release=self.on_next_scan)
        self.prevscanbtn = Button(text='<< Scan',
                                  size=BTNSIZE,
                                  size_hint=BTNHINT,
                                  font_size=FNTSIZE)
        self.prevscanbtn.bind(on_release=self.on_prev_scan)
        helpbtn = Button(text='Help',
                         size=BTNSIZE,
                         size_hint=BTNHINT,
                         font_size=FNTSIZE)
        helpbtn.bind(on_release=self.on_show_help)

        buttonlyt = BoxLayout(orientation='horizontal')
        buttonlyt.add_widget(self.annobtn)
        buttonlyt.add_widget(self.layerbtn)
        buttonlyt.add_widget(self.prevoctbtn)
        buttonlyt.add_widget(self.nextoctbtn)
        buttonlyt.add_widget(self.prevscanbtn)
        buttonlyt.add_widget(self.nextscanbtn)
        buttonlyt.add_widget(helpbtn)

        self.octnamelbl = Label(font_size=FNTSIZE)
        self.lockedlbl = Label(font_size=FNTSIZE, color=[1, 0, 0, 1])
        self.timerlbl = Label(pos=(dp(0), dp(10)), font_size=FNTSIZE)

        root = Widget()
        root.add_widget(self.octpanel)
        root.add_widget(self.octnamelbl)
        root.add_widget(self.lockedlbl)
        root.add_widget(self.timerlbl)
        root.add_widget(buttonlyt)

        self.prepare_annotation()
        self.load_annotation()
        self.show_first_oct()
        return root
예제 #15
0
 def __init__(self):
     self.ctx = RenderContext()
     self.root = root = Widget()
     for x in range(10000):
         root.add_widget(Widget())
     self.ctx.add(self.root.canvas)
예제 #16
0
파일: main.py 프로젝트: PavLove/Calculator
    def build(self):
        self.formula = '0'
        bl = BoxLayout(orientation='vertical', padding=3)
        gl = GridLayout(cols=4, spacing=3, size_hint=(1, .6))
        #       Добавляем метод Label в класс через self, чтобы вызывать его из других методов
        self.lbl = Label(text='0',
                         font_size=50,
                         size_hint=(1, .4),
                         halign='right',
                         valign='center',
                         color=[.32, .85, .94, 1],
                         text_size=(400 - 50, 500 * .4 - 50))
        bl.add_widget(self.lbl)
        gl.add_widget(
            Button(text='7',
                   background_color=[.32, .85, .94, 1],
                   on_press=self.add_number))
        gl.add_widget(
            Button(text='8',
                   background_color=[.32, .85, .94, 1],
                   on_press=self.add_number))
        gl.add_widget(
            Button(text='9',
                   background_color=[.32, .85, .94, 1],
                   on_press=self.add_number))
        gl.add_widget(
            Button(text='x',
                   background_color=[.32, .85, .94, 1],
                   on_press=self.add_operation))
        gl.add_widget(
            Button(text='4',
                   background_color=[.32, .85, .94, 1],
                   on_press=self.add_number))
        gl.add_widget(
            Button(text='5',
                   background_color=[.32, .85, .94, 1],
                   on_press=self.add_number))
        gl.add_widget(
            Button(text='6',
                   background_color=[.32, .85, .94, 1],
                   on_press=self.add_number))
        gl.add_widget(
            Button(text='-',
                   background_color=[.32, .85, .94, 1],
                   on_press=self.add_operation))
        gl.add_widget(
            Button(text='1',
                   background_color=[.32, .85, .94, 1],
                   on_press=self.add_number))
        gl.add_widget(
            Button(text='2',
                   background_color=[.32, .85, .94, 1],
                   on_press=self.add_number))
        gl.add_widget(
            Button(text='3',
                   background_color=[.32, .85, .94, 1],
                   on_press=self.add_number))
        gl.add_widget(
            Button(text='+',
                   background_color=[.32, .85, .94, 1],
                   on_press=self.add_operation))

        gl.add_widget(Widget())
        gl.add_widget(
            Button(text='0',
                   background_color=[.32, .85, .94, 1],
                   on_press=self.add_number))
        gl.add_widget(
            Button(text='.',
                   background_color=[.32, .85, .94, 1],
                   on_press=self.add_operation))
        gl.add_widget(
            Button(text='=',
                   background_color=[.32, .85, .94, 1],
                   on_press=self.calc_result))
        bl.add_widget(gl)
        return bl
예제 #17
0
파일: bubble.py 프로젝트: supercheetah/kivy
    def on_arrow_pos(self, *l):
        self_content = self.content
        if not self_content:
            return
        self_arrow_pos = self.arrow_pos
        self_arrow_layout = self._arrow_layout
        self_arrow_layout.clear_widgets()
        self_arrow_img = self._arrow_img
        self_arrow_img.pos = (0, 0)

        self.clear_widgets(do_super=True)
        self_content.parent = None

        self_arrow_img.size_hint = (1, None)
        self_arrow_img.height = self_arrow_img.texture_size[1]
        widget_list = []
        arrow_list = []
        parent = self_arrow_img.parent
        if parent:
            parent.remove_widget(self_arrow_img)

        if self_arrow_pos[0] == 'b' or self_arrow_pos[0] == 't':
            self.cols = 1
            self.rows = 2
            self_arrow_layout.rows = 1
            self_arrow_layout.cols = 3
            self_arrow_img.width = self.width / 3
            self_arrow_layout.size_hint = (1, None)
            self_arrow_layout.height = self_arrow_img.height
            if self_arrow_pos[0] == 'b':
                if self_arrow_pos == 'bottom_mid':
                    widget_list = (self_content, self_arrow_img)
                else:
                    if self_arrow_pos == 'bottom_left':
                        arrow_list = (self_arrow_img, Widget(), Widget())
                    elif self_arrow_pos == 'bottom_right':
                        #add two dummy widgets
                        arrow_list = (Widget(), Widget(), self_arrow_img)
                    widget_list = (self_content, self_arrow_layout)
            else:
                sctr = Scatter(do_translation=False,
                               rotation=180,
                               do_rotation=False,
                               do_scale=False,
                               size_hint=(None, None),
                               size=self_arrow_img.size)
                sctr.add_widget(self_arrow_img)
                if self_arrow_pos == 'top_mid':
                    #add two dummy widgets
                    arrow_list = (Widget(), sctr, Widget())
                elif self_arrow_pos == 'top_left':
                    arrow_list = (sctr, Widget(), Widget())
                elif self_arrow_pos == 'top_right':
                    arrow_list = (Widget(), Widget(), sctr)
                widget_list = (self_arrow_layout, self_content)
        elif self_arrow_pos[0] == 'l' or self_arrow_pos[0] == 'r':
            self.cols = 2
            self.rows = 1
            self_arrow_img.width = self.height / 3
            self_arrow_layout.rows = 3
            self_arrow_layout.cols = 1
            self_arrow_layout.size_hint = (None, 1)
            self_arrow_layout.width = self_arrow_img.height

            rotation = -90 if self_arrow_pos[0] == 'l' else 90
            sctr = Scatter(do_translation=False,
                               rotation=rotation,
                               do_rotation=False,
                               do_scale=False,
                               size_hint=(None, None),
                               size=self_arrow_img.size)
            sctr.add_widget(self_arrow_img)

            lenarrow_pos = len(self_arrow_pos)
            if self_arrow_pos[lenarrow_pos - 4:] == '_top':
                arrow_list = (Widget(size_hint=(1, .07)),
                              sctr, Widget(size_hint=(1, .3)))
            elif self_arrow_pos[lenarrow_pos - 4:] == '_mid':
                arrow_list = (Widget(), sctr, Widget())
            elif self_arrow_pos[lenarrow_pos - 7:] == '_bottom':
                arrow_list = (Widget(), Widget(), sctr)

            if self_arrow_pos[0] == 'l':
                widget_list = (self_arrow_layout, self_content)
            else:
                widget_list = (self_content, self_arrow_layout)

        # add widgets to arrow_layout
        add = self_arrow_layout.add_widget
        for widg in arrow_list:
            add(widg)

        # add widgets to self
        add = self.add_widget
        for widg in widget_list:
            add(widg)
예제 #18
0
from kivy.uix.videoplayer import VideoPlayer

yt = "http://www.youtube.com/watch?v=Ik-RsDGPI5Y"

video = pafy.new(yt)

audiostreams = video.streams

pprint(video.audiostreams)

for s in audiostreams:
    if s.extension == "mp4":
        x = audiostreams.index(s)

fyle = audiostreams[x].download()

print fyle

parent = Widget()
button = Button()


class VideoApp(App):
    def build(self):
        self.v = VideoPlayer(source=fyle, state='play')
        return self.v


if __name__ == '__main__':
    VideoApp().run()
예제 #19
0
    def build(self):
        tp = TabbedPanel()

        wid = Widget(size_hint=(0.9, 1))
        slider = Slider(min=0,
                        max=32,
                        value=0,
                        value_track=True,
                        orientation='vertical',
                        step=1.0,
                        value_track_color=[1, 0, 0, 1],
                        size_hint=(0.1, 1))
        self.label_pattern = "Axis {} : {}"
        self.edit_label_pattern = "Edit Color {}. Keep Axis {} : Layer Index {}. Slide : {}"
        self.color_preview_data = None
        self.fileroot = Root()
        self.axis = 0
        self.edit_axis = 1
        self.slider_value = 0
        self.layer_index = 0
        self.load_file = 0
        self.plot3d = Draw3DSurface()
        upper_layout = BoxLayout()
        upper_layout.add_widget(wid)
        upper_layout.add_widget(slider)

        self.label = Label(
            text=self.label_pattern.format(AxisList[self.axis], 0))

        btn_load_lut1 = Button(text='Load LUT 1',
                               on_press=partial(self.load_lut, wid, 1))

        btn_load_lut2 = Button(text='Load LUT 2',
                               on_press=partial(self.load_lut, wid, 2))

        btn_showlayer = Button(text='Show LUT Layer',
                               on_press=partial(self.show_lut_layer, wid))

        btn_showplot = Button(text='Show 3D Plot',
                              on_press=partial(self.show_3D_plot, wid))

        btn_double = Button(text='Change Axis',
                            on_press=partial(self.change_axis, wid))

        btn_save_lut = Button(text='Save LUT',
                              on_press=partial(self.save_lut, wid))

        layout = BoxLayout(size_hint=(1, None), height=50)
        layout.add_widget(btn_load_lut1)
        layout.add_widget(btn_load_lut2)
        layout.add_widget(btn_showlayer)
        layout.add_widget(btn_showplot)
        layout.add_widget(btn_double)
        layout.add_widget(btn_save_lut)
        layout.add_widget(self.label)

        root = BoxLayout(orientation='vertical')
        root.add_widget(upper_layout)
        root.add_widget(layout)
        slider.bind(value=partial(self.onlutlayerchange, wid))
        tp.default_tab_text = "Analysis"
        tp.background_color = (0, 0, 0, 1)
        tp.default_tab_content = root

        #Edit tab define
        th_text_head = TabbedPanelHeader(text='Edit')

        slider_layout = BoxLayout(size_hint=(1, 0.9))
        color_wid = Widget(size_hint=(1, 0.1))
        self.slider_list = []
        for i in range(33):
            self.slider_list.append(
                Slider(min=0,
                       max=1,
                       value=0,
                       value_track=False,
                       orientation='vertical',
                       cursor_size=(18, 18),
                       step=0.000001,
                       background_width=0))
        for slider_item in self.slider_list:
            slider_layout.add_widget(slider_item)
            slider_item.bind(value=partial(self.oneditcolorvalue, color_wid))

        edit_preview = BoxLayout(orientation='vertical', size_hint=(0.9, 1))
        edit_preview.add_widget(slider_layout)
        edit_preview.add_widget(color_wid)

        edit_layout_upper = BoxLayout()
        c_slider = Slider(min=0,
                          max=32,
                          value=0,
                          value_track=True,
                          orientation='vertical',
                          step=1.0,
                          value_track_color=[1, 0, 0, 1],
                          size_hint=(0.1, 1))
        c_slider.bind(value=partial(self.onslidervaluechange, color_wid))
        edit_layout_upper.add_widget(edit_preview)
        edit_layout_upper.add_widget(c_slider)

        edit_layout_lower = BoxLayout(size_hint=(1, None), height=50)
        btn_swap_axis = Button(text='Swap Axis',
                               size_hint=(0.15, 1),
                               on_press=partial(self.swap_axis, color_wid))

        btn_apply_change = Button(text='Apply Change',
                                  size_hint=(0.15, 1),
                                  on_press=partial(self.apply_change))
        self.edit_label = Label(text=self.edit_label_pattern.format(
            AxisList[self.edit_axis], AxisList[self.axis], 0, 0),
                                size_hint=(0.5, 1))
        edit_layout_lower.add_widget(btn_swap_axis)
        edit_layout_lower.add_widget(btn_apply_change)
        edit_layout_lower.add_widget(self.edit_label)
        edit_layout = BoxLayout(orientation='vertical')
        edit_layout.add_widget(edit_layout_upper)
        edit_layout.add_widget(edit_layout_lower)

        th_text_head.content = edit_layout

        tp.add_widget(th_text_head)
        th_text_head.bind(
            on_press=partial(self.edit_press_callback, color_wid))

        return tp
class MyWidget(Widget):
    parent = Widget()
    parent.add_widget(QRCodeWidget(data="Kivy Rocks"))
예제 #21
0
    def __init__(self, theme, number, name, minutes, seconds, order, **kwargs):
        super(Entry, self).__init__(**kwargs)

        self.orientation = 'horizontal'
        self.size_hint = [1, None]
        self.size = [150, 50]

        self.number = number
        self.name = name
        self.minutes = minutes
        self.seconds = seconds
        self.order = order

        # format the minutes and seconds values to a proper string displaying the time
        self.time = self.time_to_string(self.minutes, self.seconds)

        # the number to put the items into a specific sequence
        self.number_label = Label(text=str(self.number),
                                  font_size='20sp',
                                  font_name='gothic',
                                  color=theme.get_secondary_accent(),
                                  size_hint=[None, None],
                                  size=[50, 50])
        self.number_label.bind(size=self.number_label.setter('text_size'))
        self.add_widget(self.number_label)

        # the label with the name of the player
        self.name_label = Label(text=self.name,
                                font_name='gothic',
                                font_size='25sp',
                                halign='left',
                                valign='center',
                                color=theme.get_secondary(),
                                size_hint=[1, None],
                                size=[250, 50])
        self.name_label.bind(size=self.name_label.setter('text_size'))
        self.add_widget(self.name_label)

        # the label with the time
        self.time_label = Label(text=self.time,
                                font_size='20sp',
                                font_name='gothic',
                                valign='center',
                                halign='right',
                                color=theme.get_secondary(),
                                size_hint=[None, None],
                                size=[80, 50])
        self.time_label.bind(size=self.time_label.setter('text_size'))
        self.add_widget(self.time_label)

        # the widget that can indicate to which one of the orders it belongs
        self.order_widget = Widget(size_hint=[None, None], size=[50, 50])
        with self.order_widget.canvas:
            if self.order == 'lost':
                self.color = Color(255, 0, 0, 1)
            elif self.order == 'won':
                self.color = Color(0, 255, 0, 1)

            self.order_indicator = Ellipse(pos=[
                self.order_widget.pos[0] + 15, self.order_widget.pos[1] + 15
            ],
                                           size=[20, 20])
        self.order_widget.bind(pos=self.redraw, size=self.redraw)
        self.add_widget(self.order_widget)

        # the separator line
        with self.canvas:
            self.sep_color = theme.make_color(theme.get_secondary_accent())
            self.separator = Line(points=[
                self.pos[0] + 10, self.pos[1] + 10, self.pos[0] + self.width -
                10, self.pos[1] + 10
            ])
예제 #22
0
 def setUp(self):
     self.a = Animation(x=100, d=1, t='out_bounce')
     self.w = Widget()
예제 #23
0
파일: bubble.py 프로젝트: ach5910/KivyApp
    def on_arrow_pos(self, *l):
        self_content = self.content
        if not self_content:
            Clock.schedule_once(self.on_arrow_pos)
            return
        if self_content not in self.children:
            Clock.schedule_once(self.on_arrow_pos)
            return
        self_arrow_pos = self.arrow_pos
        if self._prev_arrow_pos == self_arrow_pos:
            return
        self._prev_arrow_pos = self_arrow_pos

        self_arrow_layout = self._arrow_layout
        self_arrow_layout.clear_widgets()
        self_arrow_img = self._arrow_img
        self._sctr = self._arrow_img
        self.clear_widgets(do_super=True)
        self_content.parent = None

        self_arrow_img.size_hint = (1, None)
        self_arrow_img.height = dp(self_arrow_img.texture_size[1])
        self_arrow_img.pos = 0, 0
        widget_list = []
        arrow_list = []
        parent = self_arrow_img.parent
        if parent:
            parent.remove_widget(self_arrow_img)

        if self_arrow_pos[0] == 'b' or self_arrow_pos[0] == 't':
            self.cols = 1
            self.rows = 3
            self_arrow_layout.orientation = 'horizontal'
            self_arrow_img.width = self.width / 3
            self_arrow_layout.size_hint = (1, None)
            self_arrow_layout.height = self_arrow_img.height
            if self_arrow_pos[0] == 'b':
                if self_arrow_pos == 'bottom_mid':
                    widget_list = (self_content, self_arrow_img)
                else:
                    if self_arrow_pos == 'bottom_left':
                        arrow_list = (self_arrow_img, Widget(), Widget())
                    elif self_arrow_pos == 'bottom_right':
                        # add two dummy widgets
                        arrow_list = (Widget(), Widget(), self_arrow_img)
                    widget_list = (self_content, self_arrow_layout)
            else:
                sctr = Scatter(do_translation=False,
                               rotation=180,
                               do_rotation=False,
                               do_scale=False,
                               size_hint=(None, None),
                               size=self_arrow_img.size)
                sctr.add_widget(self_arrow_img)
                if self_arrow_pos == 'top_mid':
                    # add two dummy widgets
                    arrow_list = (Widget(), sctr, Widget())
                elif self_arrow_pos == 'top_left':
                    arrow_list = (sctr, Widget(), Widget())
                elif self_arrow_pos == 'top_right':
                    arrow_list = (Widget(), Widget(), sctr)
                widget_list = (self_arrow_layout, self_content)
        elif self_arrow_pos[0] == 'l' or self_arrow_pos[0] == 'r':
            self.cols = 3
            self.rows = 1
            self_arrow_img.width = self.height / 3
            self_arrow_layout.orientation = 'vertical'
            self_arrow_layout.cols = 1
            self_arrow_layout.size_hint = (None, 1)
            self_arrow_layout.width = self_arrow_img.height

            rotation = -90 if self_arrow_pos[0] == 'l' else 90
            self._sctr = sctr = Scatter(do_translation=False,
                                        rotation=rotation,
                                        do_rotation=False,
                                        do_scale=False,
                                        size_hint=(None, None),
                                        size=(self_arrow_img.size))
            sctr.add_widget(self_arrow_img)

            if self_arrow_pos[-4:] == '_top':
                arrow_list = (Widget(size_hint=(1, .07)),
                              sctr, Widget(size_hint=(1, .3)))
            elif self_arrow_pos[-4:] == '_mid':
                arrow_list = (Widget(), sctr, Widget())
                Clock.schedule_once(self._update_arrow)
            elif self_arrow_pos[-7:] == '_bottom':
                arrow_list = (Widget(), Widget(), sctr)

            if self_arrow_pos[0] == 'l':
                widget_list = (self_arrow_layout, self_content)
            else:
                widget_list = (self_content, self_arrow_layout)

        # add widgets to arrow_layout
        add = self_arrow_layout.add_widget
        for widg in arrow_list:
            add(widg)

        # add widgets to self
        add = self.add_widget
        for widg in widget_list:
            add(widg)
예제 #24
0
    def build(self):
        wid = Widget()

        self.buttons = []

        main_layout = BoxLayout(orientation='vertical')

        main_layout.add_widget(
            Label(text='Make a summ!', font_size=self.font_size))

        layout = GridLayout(cols=10, size_hint=(1, 1))

        for j in range(2):
            for i in range(10):
                self.buttons.append(Button(text='', on_press=self.react))
                layout.add_widget(self.buttons[-1])

        main_layout.add_widget(layout)

        main_layout.add_widget(
            Label(text='Of following numbers:', font_size=self.font_size))

        args = BoxLayout()

        self.arg1 = Spinner(text='First\nnumber',
                            values=('0', '1', '2', '3', '4', '5', '6', '7',
                                    '8', '9'),
                            font_size=self.font_size,
                            color=first_arg_color,
                            on_text=self.reset_indication)
        self.arg1.bind(text=self.reset_indication)
        args.add_widget(self.arg1)

        args.add_widget(Label(text='+', font_size=self.font_size))

        self.arg2 = Spinner(text='Second\nnumber',
                            values=('0', '1', '2', '3', '4', '5', '6', '7',
                                    '8', '9'),
                            font_size=self.font_size,
                            color=second_arg_color,
                            on_text=self.reset_indication)
        self.arg2.bind(text=self.reset_indication)
        args.add_widget(self.arg2)

        main_layout.add_widget(args)

        main_layout.add_widget(Label(text='=', font_size=self.font_size))

        answer = BoxLayout()

        self.answer1 = Spinner(text='',
                               values=('', '0', '1', '2', '3', '4', '5', '6',
                                       '7', '8', '9'),
                               font_size=self.font_size)
        answer.add_widget(self.answer1)

        self.answer2 = Spinner(text='',
                               values=('', '0', '1', '2', '3', '4', '5', '6',
                                       '7', '8', '9'),
                               font_size=self.font_size)
        answer.add_widget(self.answer2)

        answer.size_hint = (0.2, None)
        answer.pos_hint = {'center_x': 0.5}

        main_layout.add_widget(answer)

        self.check_button = Button(text='', on_press=self.check_answer)

        main_layout.add_widget(
            Label(text='And check the result!',
                  font_size=self.font_size,
                  color=neutral_color))
        main_layout.add_widget(self.check_button)

        # reward =)
        self.reward_layout = GridLayout(cols=10)
        main_layout.add_widget(self.reward_layout)

        main_layout.size_hint = (1.0, 1.0)

        return main_layout
예제 #25
0
    def _update_tabs(self, *l):
        self_content = self.content
        if not self_content:
            return
        # cache variables for faster access
        tab_pos = self.tab_pos
        tab_layout = self._tab_layout
        tab_layout.clear_widgets()
        scrl_v = ScrollView(size_hint=(None, 1))
        tabs = self._tab_strip
        parent = tabs.parent
        if parent:
            parent.remove_widget(tabs)
        scrl_v.add_widget(tabs)
        scrl_v.pos = (0, 0)
        self_update_scrollview = self._update_scrollview

        # update scrlv width when tab width changes depends on tab_pos
        if self._partial_update_scrollview is not None:
            tabs.unbind(width=self._partial_update_scrollview)
        self._partial_update_scrollview = partial(self_update_scrollview,
                                                  scrl_v)
        tabs.bind(width=self._partial_update_scrollview)

        # remove all widgets from the tab_strip
        self.clear_widgets(do_super=True)
        tab_height = self.tab_height

        widget_list = []
        tab_list = []
        pos_letter = tab_pos[0]
        if pos_letter == 'b' or pos_letter == 't':
            # bottom or top positions
            # one col containing the tab_strip and the content
            self.cols = 1
            self.rows = 2
            # tab_layout contains the scrollview containing tabs and two blank
            # dummy widgets for spacing
            tab_layout.rows = 1
            tab_layout.cols = 3
            tab_layout.size_hint = (1, None)
            tab_layout.height = (tab_height + tab_layout.padding[1] +
                                 tab_layout.padding[3] + dp(2))
            self_update_scrollview(scrl_v)

            if pos_letter == 'b':
                # bottom
                if tab_pos == 'bottom_mid':
                    tab_list = (Widget(), scrl_v, Widget())
                    widget_list = (self_content, tab_layout)
                else:
                    if tab_pos == 'bottom_left':
                        tab_list = (scrl_v, Widget(), Widget())
                    elif tab_pos == 'bottom_right':
                        #add two dummy widgets
                        tab_list = (Widget(), Widget(), scrl_v)
                    widget_list = (self_content, tab_layout)
            else:
                # top
                if tab_pos == 'top_mid':
                    tab_list = (Widget(), scrl_v, Widget())
                elif tab_pos == 'top_left':
                    tab_list = (scrl_v, Widget(), Widget())
                elif tab_pos == 'top_right':
                    tab_list = (Widget(), Widget(), scrl_v)
                widget_list = (tab_layout, self_content)
        elif pos_letter == 'l' or pos_letter == 'r':
            # left ot right positions
            # one row containing the tab_strip and the content
            self.cols = 2
            self.rows = 1
            # tab_layout contains two blank dummy widgets for spacing
            # "vertically" and the scatter containing scrollview
            # containing tabs
            tab_layout.rows = 3
            tab_layout.cols = 1
            tab_layout.size_hint = (None, 1)
            tab_layout.width = tab_height
            scrl_v.height = tab_height
            self_update_scrollview(scrl_v)

            # rotate the scatter for vertical positions
            rotation = 90 if tab_pos[0] == 'l' else -90
            sctr = Scatter(do_translation=False,
                           rotation=rotation,
                           do_rotation=False,
                           do_scale=False,
                           size_hint=(None, None),
                           auto_bring_to_front=False,
                           size=scrl_v.size)
            sctr.add_widget(scrl_v)

            lentab_pos = len(tab_pos)

            # Update scatter's top when it's pos changes.
            # Needed for repositioning scatter to the correct place after its
            # added to the parent. Use clock_schedule_once to ensure top is
            # calculated after the parent's pos on canvas has been calculated.
            # This is needed for when tab_pos changes to correctly position
            # scatter. Without clock.schedule_once the positions would look
            # fine but touch won't translate to the correct position

            if tab_pos[lentab_pos - 4:] == '_top':
                #on positions 'left_top' and 'right_top'
                sctr.bind(pos=partial(self._update_top, sctr, 'top', None))
                tab_list = (sctr, )
            elif tab_pos[lentab_pos - 4:] == '_mid':
                #calculate top of scatter
                sctr.bind(
                    pos=partial(self._update_top, sctr, 'mid', scrl_v.width))
                tab_list = (Widget(), sctr, Widget())
            elif tab_pos[lentab_pos - 7:] == '_bottom':
                tab_list = (Widget(), Widget(), sctr)

            if pos_letter == 'l':
                widget_list = (tab_layout, self_content)
            else:
                widget_list = (self_content, tab_layout)

        # add widgets to tab_layout
        add = tab_layout.add_widget
        for widg in tab_list:
            add(widg)

        # add widgets to self
        add = self.add_widget
        for widg in widget_list:
            add(widg)
예제 #26
0
 def run(self):
     o = []
     for x in range(10000):
         o.append(Widget())
예제 #27
0
    def __init__(self, character, **kwargs):
        self.rank_loaded_max = 0
        self.rank_loaded_min = 0
        self.finished_loading = False
        self.rank_current = -1
        self.slot_confirm = SlotConfirm()
        self.unlock_all = SBUnlockAll()

        self.char = character
        self.name = 'status_board_unassigned'

        if self.char == -1:
            super().__init__(**kwargs)
            return

        char = Refs.gc.get_char_by_index(character)
        self.name = 'status_board_' + str(char.get_id())
        self.char_symbol_source = char.get_image('symbol')

        self.char_type_flag = 'Supporter' if char.is_support(
        ) else 'Adventurer'
        self.char_attack_flag = char.get_attack_type_string()
        self.char_element_flag = char.get_element_string()
        self.char_image_source = char.get_image('full')
        self.char_symbol_source = char.get_image('symbol')

        super().__init__(**kwargs)

        self.update_stars()
        self.unlock_all.bind(on_dismiss=self.modal_dismiss)
        self.slot_confirm.bind(on_dismiss=self.modal_dismiss)
        self.unlock_all.bind(on_confirm=self.unlock_all_slots)

        sb = self.ids.status_board_screen
        ranks = char.get_ranks()
        self.rank_loaded_min = self.rank_current = self.rank_loaded_max = char.get_current_rank(
        ) - 1

        if self.rank_current != 0:
            for index in range(0, self.rank_current - 1):
                sb.add_widget(Widget())
            self.rank_loaded_min = self.rank_current - 1
            sb.add_widget(
                GridWidget(self, self.char, self.rank_current - 1,
                           ranks[self.rank_current - 1].get_board()))
        sb.add_widget(
            GridWidget(self, self.char, self.rank_current,
                       ranks[self.rank_current].get_board()))
        if self.rank_current != 9:
            self.rank_loaded_max = self.rank_current + 1
            sb.add_widget(
                GridWidget(self, self.char, self.rank_current + 1,
                           ranks[self.rank_current + 1].get_board()))
            for index in range(self.rank_current + 2, 10):
                sb.add_widget(Widget())
        self.current_board_name = f'Rank {self.rank_current + 1}\nStatus Board'
        sb.bind(on_load_next=self.goto_next_board)
        sb.bind(on_load_previous=self.goto_previous_board)
        sb.anim_move_duration = 0.0
        sb.load_slide(sb.slides[self.rank_current])
        sb.anim_move_duration = 0.5
        self.finished_loading = True
예제 #28
0
 def run(self):
     o = Widget()
     for x in range(10000):
         o.add_widget(Widget())
예제 #29
0
    def build(self):
        root = Widget()
        t_ellips = ellipse_box(200, 200)

        root.add_widget(t_ellips)
        return root
예제 #30
0
    def drawObj(self, obj=None):
        '''
        Updates a object if object already on widget.
        Otherwise it will create a object
        Override this function to create your own
        apperance of ojects
        '''        
        assert isinstance(obj, mrGraphicsObject)

        if type(obj) == None:
            return False

        # get obj attributes
        objID = obj.getID()
        objname = obj.getName()
        location = self.convertPosition( obj.getLocation() )
        color = obj.getColor()
        wObj = None
        
        # draw objects
        with self.canvas:
            # set color
            Color( color[0], color[1], color[2], color[3] )
            
            if type(obj) == mrGraphicsBot:
                # draw bot
                assert isinstance(obj, mrGraphicsBot)
                size = self.convertSize( obj.getSize() )
                angle = obj.getAngle()
                lineW, points, points2, corners = self.getBotDrawData(location, size)
                print "points", points, points2
                p0 = corners[0]
                p3 = corners[3]

                # draw object
                wObj = {'widget': Widget( pos=p0 ), 'label': None}
                lbl = Label( text=str(objID)+":"+objname, pos=p3 )
                lbl.texture_update()
                tsize = lbl.texture.size
                lbl.size = (tsize[0], tsize[1])
                wObj['label'] = lbl
                
                # draw dot
                with wObj['widget'].canvas.before:
                    PushMatrix()
                    Rotate( angle=angle, axis=(0,0,1), origin=(location[0], location[1], 0) )                        
                with wObj['widget'].canvas.after:
                    PopMatrix()
                                            
                with wObj['widget'].canvas:
                    Color( color[0], color[1], color[2], color[3] )
                    Line( points=points, width=lineW )
                    Line( points=points2, width=lineW )
                   
                if angle != 0: 
                    with wObj['label'].canvas.before:
                        PushMatrix()
                        Rotate( angle=angle, axis=(0,0,1), origin=(location[0], location[1], 0) )                        
                    with wObj['label'].canvas.after:
                        PopMatrix()
                        
                        
            
            if type(obj) == mrGraphicsRectangle:
                # draw rectangle  
                assert isinstance(obj, mrGraphicsRectangle)
                size = self.convertSize( obj.getSize() )              
                pos = ( location[0]-size[0]/2, location[1]-size[1]/2 )
                angle = obj.getAngle()
                
                # draw new object
                wObj = Widget( size=size, pos=pos )
                
                # draw rectangle
                with wObj.canvas:
                    Color( color[0], color[1], color[2], color[3] )
                    Rectangle( size=size, pos=pos )
                    
                if angle != 0:
                    with wObj.canvas.before:
                        PushMatrix()
                        Rotate( angle=angle, axis=(0,0,1), origin=(location[0], location[1], 0) )                        
                    with wObj.canvas.after:
                        PopMatrix()                   


            if type(obj) == mrGraphicsLine:
                #draw line
                assert isinstance(obj, mrGraphicsLine)
                points = self.convertPoints( obj.getPoints() )
                width = self.convertSize( obj.getWidth() )       
                
                # draw new object
                wObj = Line( points=points, width=width )
            
            
            if type(obj) == mrGraphicsDot:
                #draw dot
                assert isinstance(obj, mrGraphicsDot)
                radius = self.convertSize( obj.getRadius() )
                size = (2*radius, 2*radius)
                pos = ( location[0]-radius, location[1]-radius  )
                
                # draw new object
                wObj = Ellipse( pos=pos, size=size  )
            
            
            if type(obj) == mrGraphicsCircle:
                #draw cricle
                assert isinstance(obj, mrGraphicsCircle)
                radius = self.convertSize( obj.getRadius() )
                width = self.convertSize( obj.getWidth() )
                
                # draw new object
                wObj = Line( circle=(location[0], location[1], radius), width=width )
                    
                    
            if type(obj) == mrGraphicsText:
                #draw text
                assert isinstance(obj, mrGraphicsText)
                text = obj.getText()
                textcolor = obj.getTextColor()
                fontsize = obj.getFontSize()
                angle = obj.getAngle()
                
                # draw new object
                padding = 5
                wObj = Label( text=text, pos=location, markup=True, color=textcolor )
                if fontsize != None:
                    print "set fontsize", fontsize
                    wObj.font_size = fontsize
                
                wObj.texture_update()
                size = wObj.texture.size
                wObj.size = (size[0]+2*padding, size[1]+2*padding)
                 
                with wObj.canvas.before:                        
                    PushMatrix()
                    Rotate( angle=angle, axis=(0,0,1), origin=(location[0], location[1], 0) )  
                    Color( color[0], color[1], color[2], color[3] )
                    Rectangle( pos=wObj.pos, size=wObj.size)   
                                            
                with wObj.canvas.after:                        
                    PopMatrix()
                        
                        
            if type(obj) == mrGraphicsImage:
                # draw image
                assert isinstance(obj, mrGraphicsImage)
                src = obj.getSource()
                keepRatio = obj.keepRatio()
                size = self.convertSize( obj.getSize() )                
                angle = obj.getAngle()
                
                if isfile(src):
                    wObj = AsyncImage( source=src, size=size, allow_stretch=True, keep_ratio=keepRatio )
                    wObj.texture_update()
                    pos = (location[0]-size[0]*0.5, location[1]-size[1]*0.5)
                    wObj.pos = pos
                    size = wObj.size
                    
                    if angle != 0:
                        with wObj.canvas.before:
                            PushMatrix()
                            Rotate( angle=angle, axis=(0,0,1), origin=(location[0], location[1], 0) )
                                                    
                        with wObj.canvas.after:
                            PopMatrix()
            
        # send update request to canvas
        self.canvas.ask_update()
        
        # return new object
        return wObj