2016-08-05 3 views
0

ist hier der entsprechende Ausschnitt aus meiner mykv.kv Datei:Kivy: Wie Zellen fusionieren und die Interaktion mit MySQL-Datenbank

<RemoveScreen>: 
    MyLayout: 
     MyLogo: 
      GridLayout: 
       rows: 6 
       cols: 2 
       padding: 100,80,100,80 
       Label: 
        font_size: "20sp" 
        bold: True 
        color: [1,1,0,1] 
        text: "Part number:" 
       Label: 
        text: "Box 02" 
       Label: 
        font_size: "20sp" 
        bold: True 
        color: [1,1,0,1] 
        text: "Part description:" 
       Label: 
        text: "Box 04" 
       Label: 
        font_size: "20sp" 
        bold: True 
        color: [1,1,0,1] 
        text: "Quatity on hand:" 
       Label: 
        #font_size: "20sp" 
        text: "Box 06" 
       Label: 
        font_size: "20sp" 
        bold: True 
        color: [1,1,0,1] 
        text: "Bin location:" 
       Label: 
        text: "Box 08" 
       Label: 
        font_size: "20sp" 
        bold: True 
        color: [1,1,0,1] 
        text: "Direction:" 
       Label: 
        text: "Box 10" 
       Label: 
        font_size: "20sp" 
        bold: True 
        color: [1,1,0,1] 
        text: "Scan time:" 
       Label: 
        text: "Box 12" 


     MyButtons: 
      #buttons 

Der obige Code gibt dies:

enter image description here

würde ich Ich möchte eine verbundene Zelle oben haben, wo sie zentriert ist, die linke Spalte rechtsbündig ist und die rechte Spalte linksbündig ist.

enter image description here

Fragen: die linke Spalte werden die Saiten aus einer MySQL-Abfrage, und ersetzen Sie die "Box #" Strings, die aussehen wie erhalten Könnten Sie bitte in meinem Code implementieren, wird:

  • Merge die erste Reihe von zwei Zellen in einer
  • rechts die linke Spalte
  • linke rechtfertigen die rechte Spalte rechtfertigen (per das Layout oben)
+1

Die Frage ist also, "schreibst du mir bitte ein Programm" :). Könnten Sie bitte zeigen, was Sie in Bezug auf MySQL versucht haben, um es zu implementieren? – EL3PHANTEN

+1

Auch sollten Sie diese http://stackoverflow.com/help/how-to-ask und http://stackoverflow.com/help/mcve lesen. Auch das ist keine Frage. – EL3PHANTEN

+0

@ EL3PHANTEN Du hast jedes Recht, böse zu sein, so wie ich momentan bei mir bin. Ich werde verwirrt und stecke fest. Aber deine Hilfe reicht weit - Wenn du deinen Code und deine Struktur ansiehst, lerne ich viel! Ich bin dankbar und ich schätze aufrichtig Ihre Eingabe! – 3kstc

Antwort

1

In Kivys GridLayout gibt es keine Funktion, um Zellen zu verbinden. Aber du könntest eine Arbeit machen, damit es so aussieht.
In kivy ist es einfach, Layouts zu kombinieren. Und Sie können sie verschachteln, so viel Sie wollen
So könnte ein vertikales Boxlayout, mit 2 Elementen darin, die Problemumgehung für dieses Problem sein.

vertical BoxLayout 
    Head Label 
    GridLayout 

ich Ihnen hier ein Beispiel zeigt.

Die Python-Datei ist nur eine minimale App.

from kivy.app import App 

from kivy.lang import Builder 
from kivy.uix.boxlayout import BoxLayout 

Builder.load_file("kv.kv") 


class RemoveScreen(BoxLayout): 
    pass 


class MyApp(App): 
    def build(self): 
     return RemoveScreen() 


MyApp().run() 

Und die kv.kv-Datei. Um den Code sauberer zu machen, habe ich benutzerdefinierte Label-Klassen erstellt. Auf diese Weise müssen Sie die Werte nur an einer Stelle ändern.

<[email protected]>: 
    font_size: "20sp" 
    bold: True 
    color: [1,1,0,1] 
    halign: "right" 
    text_size: root.width, None 
    size: self.texture_size 


<[email protected]>: 
    halign: "left" 
    text_size: root.width, None 
    size: self.texture_size 


<RemoveScreen>: 
    orientation: "vertical" 

    MyLabel1: 
     text: "Headline" 
     size_hint: (1,0.05) 
     halign: "center" 

    GridLayout: 
     rows: 6 
     cols: 2 
     padding: [0, 0, 0, 25] 
     spacing: [10,0] 

     MyLabel1: 
      text: "Part number:" 
     MyLabel2: 
      text: "Box 02" 

     MyLabel1: 
      text: "Part description:" 
     MyLabel2: 
      text: "Box 04" 

     MyLabel1: 
      text: "Quatity on hand:" 
     MyLabel2: 
      text: "Box 06" 

     MyLabel1: 
      text: "Bin location:" 
     MyLabel2: 
      text: "Box 08" 

     MyLabel1: 
      text: "Direction:" 
     MyLabel2: 
      text: "Box 10" 

     MyLabel1: 
      text: "Scan time:" 
     MyLabel2: 
      text: "Box 12"