2017-09-30 1 views
0

Ich bin dabei, eine Anwendung von reinem Python zu konvertieren, um kivy für die Bildschirmverarbeitung zu verwenden. Ich bin ein kivy Neuling!kivy mit Markup für zwei verschiedene Textgrößen in einem einzigen Knopf funktioniert nicht

Ich versuche, einen Bildschirm zu replizieren, der das aktuelle Datum und die Uhrzeit in zwei Zeilen mit unterschiedlichen Größen für die zwei Zeilen anzeigt. Ich verwende zwei verschiedene [size =?] Markups in der anzuzeigenden Zeichenfolge, aber die zwei Zeilen werden immer in der gleichen Größe angezeigt (die zweite angegebene Größe) - wie kann ich sie zu verschiedenen Größen bekommen?

Ich habe Vorschläge gesehen, dass dies mit HTML erreicht werden könnte, aber Angst, dass wäre schrecklich ineffizient.

-Code ist:

<C>: 
BoxLayout: 
    orientation: 'vertical' 
    BoxLayout: 
     Button: 
      text: 
       '[size=48]' + app.date + '[/size]' + \ 
       '\n[size=96]' + app.time + '[/size]' 
      background_color: (0, 0, 0, 0) 
      halign: 'center' 
      markup: True 
      on_press: app.stop() 
    Status: 
     id: stat 

Antwort

0

enter image description here

habe ich Ihren Code und die Linien hatten eine andere Schriftgröße. Daher muss das Problem außerhalb des von Ihnen angegebenen Codes liegen.

py:

from kivy.app import App 
from kivy.properties import StringProperty 


class MyApp(App): 
    date = StringProperty('2017-09-30') 
    time = StringProperty('Now') 

if __name__ == '__main__': 
    MyApp().run() 

kv:

BoxLayout: 
    orientation: 'vertical' 
    BoxLayout: 
     Button: 
      text: 
       '[size=48]' + app.date + '[/size]' + \ 
       '\n[size=200]' + app.time + '[/size]' 
      background_color: (0, 0, 0, 0) 
      halign: 'center' 
      markup: True 
      on_press: app.stop() 

Alternativ können Sie die folgende kv-Datei:

Button: 
    on_press: app.stop() 
    BoxLayout: 
     pos: self.parent.pos 
     size: self.parent.size 
     orientation: 'vertical' 
     Label: 
      text: app.date 
      font_size: 48 
     Label: 
      text: app.time 
      font_size: 96 

etw erzeugen, die auch eher wie eine Schaltfläche verhält in kv, ändert den Hintergrund beim Drücken.

enter image description here

+0

Vielen Dank für das versuchen - es ist sehr geschätzt. Ich habe meine .py-Datei so geändert, dass sie fast Ihrer ähnelt (Hinzufügen der def-Datei (selbst) :), und ja, es funktioniert. Ich muss noch etwas durcheinander bringen. Offensichtlich muss ich ein wenig mehr in der .py - Aktualisierung der Datums- und Uhrzeitzeichenfolgen auf einem Clock.schedule_interval tun. –

Verwandte Themen