【发布时间】:2014-11-04 00:01:31
【问题描述】:
警告:主要编码问题已解决,只需要回答这个小问题:
至于我的最后一个问题:如何使我的 textinput 小部件(或其他任何东西)居中? 并且更准确地说:我希望我写的文本居中在 textinput widged 中,而不是小部件居中在更大的结构中。
*
*
所以我有一些 Python 代码(只是简单的日历转换器)用于学习目的,效果很好。
data = input("Wpisz date w formacie DD.MM.YYYY : ")
dzien = int(data[0:2])
miesiac = int(data[3:5])
rok = int(data[6:10])
m_31 = 31
m_30 = 30
m_29 = 29
m_28 = 28
miesiace = ["Styczen", "Luty", "Marzec", "Kwiecien", "Maj", "Czerwiec", "Lipiec", "Sierpien", "Wrzesien", "Pazdziernik", "Listopad", "Grudzien"]
dni_tygodnia = ["Poniedzialek", "Wtorek", "Sroda", "Czwartek", "Piatek", "Sobota", "Niedziela"]
rok_zwykly = [m_31, m_28, m_31, m_30, m_31, m_30, m_31, m_31, m_30, m_31, m_30, m_31]
rok_przestepny = [m_31, m_29, m_31, m_30, m_31, m_30, m_31, m_31, m_30, m_31, m_30, m_31]
if (rok%4 == 0 and rok%100 != 0):
dzien_roku = sum(rok_przestepny[0:miesiac-1]) + dzien
elif(rok%4 == 0 and rok%100 == 0 and rok%400 == 0):
dzien_roku = sum(rok_przestepny[0:miesiac-1]) + dzien
else:
dzien_roku = sum(rok_zwykly[0:miesiac-1]) + dzien
dni = 0
lata = range(0, rok)
for i in lata:
dni = dni + 365
for i in lata:
if (i%4 == 0 and i%100 != 0):
dni = dni + 1
elif (i%4 ==0 and i%100 == 0 and i%400 == 0):
dni = dni + 1
else:
dni = dni
dni = dni + dzien_roku
dzien_tygodnia = (dni+5)%7
lata_przestepne = 0
for i in range(0, 2012):
if (i%4 == 0 and i%100 != 0):
lata_przestepne = lata_przestepne +1
elif (i%4 ==0 and i%100 == 0 and i%400 == 0):
lata_przestepne = lata_przestepne +1
else:
lata_przestepne = lata_przestepne
current_long_count = [0, 0, 0, 0, 0]
current_long_count_equivalent = 1872000 + dni - 356 - 2012*365 - lata_przestepne
if abs(current_long_count_equivalent) / 144000 >= 1:
current_long_count[0] = current_long_count[0] + current_long_count_equivalent // 144000
else:
current_long_count = current_long_count
if abs(current_long_count_equivalent) % 144000 / 7200 >= 1:
current_long_count[1] = current_long_count[1] + current_long_count_equivalent % 144000 // 7200
else:
current_long_count = current_long_count
if abs(current_long_count_equivalent) % 144000 % 7200 / 360 >= 1:
current_long_count[2] = current_long_count[2] + current_long_count_equivalent % 144000 % 7200 // 360
else:
current_long_count = current_long_count
if abs(current_long_count_equivalent) % 144000 % 7200 % 360 / 20 >= 1:
current_long_count[3] = current_long_count[3] + current_long_count_equivalent % 144000 % 7200 % 360 // 20
else:
current_long_count = current_long_count
if abs(current_long_count_equivalent) % 144000 % 7200 % 360 % 20 >= 1:
current_long_count[4] = current_long_count[4] + current_long_count_equivalent % 144000 % 7200 % 360 % 20
else:
current_long_count = current_long_count
print(str(dzien) + " - " + miesiace[miesiac-1] + " - " + str(rok))
print(dni_tygodnia[dzien_tygodnia -1])
print(str(dzien_roku) + " dzien w roku " + str(rok))
print("Dzien " + str(current_long_count[0]) + "." + str(current_long_count[1]) + "." + str(current_long_count[2]) + "." + str(current_long_count[3]) + "." + str(current_long_count[4]) + " Dlugiej Rachuby")
根据网上流传的几个例子,我对如何制作 Kivy 布局也有了一些想法。我在任何地方都找不到的是如何将一个与另一个合并。我的示例布局在这里(是的,如果可能的话,我现在希望所有内容都在 1 个文件中):
import kivy
from kivy.app import App
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from kivy.uix.boxlayout import BoxLayout
class Calendar(App):
def build(self):
b = BoxLayout(orientation = "vertical")
ti = TextInput(font_size = 60, text = "Here I want input")
to = Label (text = "Here I want output", font_size = 60)
b.add_widget(ti)
b.add_widget(to)
return b
if __name__ == "__main__":
Calendar().run()
我想要的只是 2 个框(使用 boxlayout 或 gridlayout IDC),其中一个是我的程序的输入,另一个是我的程序的输出。尽管听起来很简单,但我找不到任何示例(更不用说网络上完全缺乏“从零到英雄”的 kivy 教程)。
提前感谢您的帮助。
附:我的专业水平(意思=缺乏它)要求尽可能简单的解决方案(即使它不是“漂亮”),并尽可能多地解释。
【问题讨论】:
-
您看过 kivy 速成课程教程吗? youtube.com/watch?v=t8N_8WkALdE
-
是的,我做到了——它可能是唯一可靠的来源。但是唯一出现的变量“传输”是 setter() 函数,它对我没有用(而我想要的是:写入日期>按 Enter >获取结果)。同样作为所有教程,我发现这个很浅(尽管在不可理解性方面最好)。
-
在不知道您有多少 Python 经验的情况下,很难对此提供答案。如果您对类不太了解,那么使用 kivy 进行开发会很困难。避免使用 kivy 有用的 'kv lang' 将使您所有的 kivy 项目比使用 kv 的时间长两倍。
标签: python python-3.x kivy