我从互联网上复制了这段代码,试图了解Kivy是如何工作的(顺便说一下,它确实有效)。我正在尝试使用以下命令导入我创建的另一个名为“Mifflin”(卡路里方程式程序)的python文件:
import Mifflin
与其他进口商品。它正确导入它,但每当我运行程序时,它运行Mifflin,一旦完成执行文件,它就会运行剩下的代码。
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.uix.boxlayout import BoxLayout
class TestApp(App):
def build(self):
layout = BoxLayout(orientation='vertical')
# use a (r, g, b, a) tuple
blue = (0, 0, 1.5, 2.5)
red = (2.5, 0, 0, 1.5)
btn = Button(text='Touch me!', background_color=blue, font_size=120)
btn.bind(on_press=self.callback)
self.label = Label(text="------------", font_size='50sp')
layout.add_widget(btn)
layout.add_widget(self.label)
return layout
def callback(self, event):
print("button touched") # test
self.label.text = "button touched"
TestApp().run()
我的主要目标是按一个按钮然后运行程序“Mifflin”,我不知道该怎么做。在此先感谢帮助我。
答案 0 :(得分:1)
我相信您的代码与此类似:
import <that file>
print('hi')
,你的控制台输出将是:
[INFO ] [GL ] NPOT texture support is available
button touched
[INFO ] [Base ] Leaving application in progress... # Kivy app exits here
hi
因为导入文件末尾有TestApp().run()
。这样做是为了防止它:
if __name__ == '__main__':
TestApp().run()
当调用App.run()
方法时,Kivy会以一种非常简单的方式启动它的事件循环:
while True:
pass
并且直到这样的循环被破坏,之后才会执行代码(因此即使在导入之后)也将执行。