2017-05-31 2 views
0

Das Problem, dem ich gegenüberstehe, ist ein Kontrollkästchen in meiner ActionGroup mit einem Label daneben.Platzieren Sie einen Kivy ActionCheck neben einem ActionLabel

Im herkömmlichen Fall würde ich eine Layout-Klasse zum Ausrichten der Checkbox neben einem Widget verwenden. Aber in ActionView oder ActionGroup sind nur ActionItems als Kinder erlaubt.

Ich habe versucht, so weit das CheckBox in die ActionLabel zu setzen, die in einen unangebrachten und transparenten Hintergrund ActionItem führten (Checkbox above the ActionLabel):

ActionGroup: 
id: view_menu_group 
text: "[color=ff9900]View[/color]" 
markup: True 
mode: "spinner" 

ActionLabel: 
    text: "Compare Mode" 
    ActionCheck: 
     on_active: app.root.main_view.graph.multi_plot = self.active 

Mein Ziel so aussehen sollte: Menu Dropdown with Checkboxes

+0

Ihr Projekt sehr interessant aussieht! Bitte sagen Sie mir, was Sie in einem Kommentar planen. –

+0

Danke! Ich zeichne Kraft-Dehnungskurven aus Atomkraftmikroskopischen Daten – Edge

+0

Wow, das ist super interessant. Viel Glück in Ihrem Projekt! –

Antwort

0

Ok Hier ist, was wir tun: Wir können jede Art von Widget oder Layout in einer ActionGroup platzieren. Aus irgendeinem Grund hat Kivy entschieden, dass wir das nur tun können, wenn wir von ActionItem erben. Aber im Grunde ist der Code gleich:

from kivy.base import runTouchApp 
from kivy.lang import Builder 

runTouchApp(Builder.load_string(''' 
<[email protected]+ActionItem>: # Inheritance in .kv 
    ActionLabel: 
     text: "Hello" 
    ActionCheck: 

ActionBar: 
    size_hint: 1, 0.1 # REMOVE ME 
    pos_hint: {'top':1} # REMOVE ME 

    id: view_menu_group 
    text: "[color=ff9900]View[/color]" 
    markup: True 
    mode: "spinner" 

    ActionView: 
     ActionPrevious: # need this for some unknown reason 
     ActionGroup: 
      MyCheckbox: # our custom Label+Checkbox ActionItem 
''')) 

Hier ist, wie es aussieht:

Label next to checkbox in an ActionBar ActionGroup

+0

Funktioniert perfekt! Jetzt muss ich nur noch den Hintergrund des Labels auf einen nicht transparenten Hintergrund bringen. Danke vielmals! :) – Edge

Verwandte Themen