Was ist die bevorzugte Möglichkeit, ein Bild/Symbol und Text innerhalb einer Schaltfläche zu kombinieren? Zum Beispiel, wie würden Sie eine Schaltfläche mit text = 'my button'
und ein grafisches Symbol auf der linken Seite dieses Textes erstellen?Kombinieren von Bild und Text innerhalb einer Schaltfläche in Kivy
Antwort
In Bezug auf Frage # 2.
Die Art, wie Kivy funktioniert, ist die Einbettung von Widget
Instanzen. Da Image
und Button
Unterklassen von Widget sind, müssen Sie nur ein Bild in einen Button einbetten. Beachten Sie, dass die Positionierung in einem Widget behoben ist. Sie müssen explizite Koordinaten angeben.
Das gesagt, Sie können immer ein Layout
einbetten, um die Sachen zu organisieren, die Sie innerhalb des Knopfes setzen. Hier
ist die einfache ex
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
Builder.load_string("""
<ButtonsApp>:
orientation: "vertical"
Button:
text: "B1"
Image:
source: 'kivy.png'
y: self.parent.y + self.parent.height - 200
x: self.parent.x
Label:
text: "A label"
""")
class ButtonsApp(App, BoxLayout):
def build(self):
return self
if __name__ == "__main__":
ButtonsApp().run()
EDIT: Ein Beispiel, wie ein relatives Layout kann innerhalb eines Knopfes
In diesem Fall eingebettet ich eine StackLayout
bin mit einem Image
zu organisieren und a Label
innen. Wie gesagt, Button
ist ein Widget
und Kivy arbeitet Widgets in Widgets einbetten. Es spielt keine Rolle, ob es sich um Beschriftungen, Schaltflächen oder Layouts handelt.
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.lang import Builder
Builder.load_string("""
<ButtonsApp>:
orientation: "vertical"
Button:
StackLayout:
pos: self.parent.pos
size: self.parent.size
orientation: 'lr-tb'
Image:
source: 'kivy.png'
size_hint_x: None
width: 74
Label:
size_hint_x: None
width: 100
text: "The text"
Label:
text: "A label"
""")
class ButtonsApp(App, BoxLayout):
def build(self):
return self
if __name__ == "__main__":
ButtonsApp().run()
- 1. Kombinieren Bild und Text in HAML
- 2. Kivy TextInput Kombinieren von Hinweistext und Fokus
- 3. So animieren Sie Text innerhalb einer Schaltfläche
- 4. Schaltfläche mit Bild, Text, Pfeil und Menü
- 5. WPF - Schaltfläche mit Text und Bild
- 6. Kivy Button ID's innerhalb Funktionen
- 7. Verwendung von Sprache zu Text in Kivy
- 8. Android: mit Bild anstelle von Text auf einer Schaltfläche
- 9. Textnachricht mit Bild in einer Blase kombinieren
- 10. PHP Kombinieren von Variablen und Ausdruck innerhalb einer if-Anweisung
- 11. Layouts innerhalb Layouts in Kivy mit Python
- 12. Ändern Hintergrund einer Schaltfläche in eine andere Form und Stile wie Schatteneffekt usw. in Kivy Python
- 13. Bild auf einer Schaltfläche
- 14. Erstellen einer Schaltfläche mit swt.arrow und Bild
- 15. Lokalisieren von Text in Bild
- 16. kivy Wie bekomme ich Text in TextInput?
- 17. Bild, Text/Bild und Bild in Android
- 18. Text in TextInput() in Kivy einfügen
- 19. Kombinieren von Listen innerhalb Werte in pyspark
- 20. PHP Bildbearbeitung korrumpierenden Text innerhalb Bild
- 21. Erstellen von verschiedenen Schaltflächen in einer Schleife in Python/Kivy?
- 22. DIV mit Bild und Text
- 23. Ausrichten von Text und Bild in einer SWT-Taste?
- 24. Kombinieren klassischen ASP.NET und ASP.NET MVC innerhalb einer Webanwendung
- 25. Storyboard Positionierung Text unter Bild in einer Taste
- 26. mehrzeiliger Text in Kivy Etikett (Python-bidi)
- 27. ein Bild in einer Schaltfläche WPF hinzufügen
- 28. Einen Übergang von einer Schaltfläche innerhalb einer benutzerdefinierten UITableViewCell ausführen
- 29. Wie Text vor und nach einer Schaltfläche in BootstrapCSS
- 30. Ändern von Fällen in Kivy
Danke, tico. Das Zuweisen der Bildposition relativ zu dem übergeordneten Element scheint jedoch ein Problem zu verursachen. Nehmen wir an, der Text Ihrer Schaltfläche wird dynamisch generiert (dh mit variabler Länge) und Sie möchten, dass das Bild immer die Breite von 10 Pixeln links vom Text aufweist. Um die Bildposition zu bestimmen, müssen Sie eine Funktion schreiben nimmt als Eingabe die Anzahl der Zeichen im Text der Schaltfläche und bestimmt den x-Wert entsprechend? –
In diesem Fall fügen Sie ein 'Label' und ein' Image' in einem anderen 'Layout' hinzu. Ich würde sagen "BoxLayout" und "Orientierung: horizontal". Ich schätze, es ist einfacher, Ihnen ein anderes Beispiel zu geben. –