【发布时间】:2017-09-18 20:52:43
【问题描述】:
Kivy app screenshot 我在同一个项目中有 2 个 .py 文件,名为 dailyReports.py 和 weekReports.py,它们每个都生成一个不同的 Excel 表,一个是每日报告,另一个是每周报告。当我单击运行时,它会直接打开我想要的 excel 文件。 我正在尝试制作一个简单的用户友好界面,允许用户选择他们想要生成的报告,并让它运行相应的报告生成器并输出 excel 文件。这是我第一次处理 python 和 kivy,但到目前为止,我能够使我的两个报告生成器工作,并且我的 kivy GUI 的视觉方面正是我想要的。我的问题是当我尝试将下拉菜单中的两个按钮绑定到它们相应的 excel 生成器函数时。有人可以帮我吗?这是迄今为止我的 .py 文件的代码,其中包含我的 kivy 代码以及当我单击下拉按钮时我当前的 kivy GUI 的样子的图片。 我真的很感激!!!!
from kivy.uix.label import Label
from kivy.uix.dropdown import DropDown
from kivy.app import App
from kivy.graphics import Color, Rectangle
from kivy.uix.floatlayout import FloatLayout
from kivy.graphics.context_instructions import Color
from kivy.config import Config
from kivy.uix.image import Image
from kivy.uix.button import Button
dropdown = DropDown()
class Panel(FloatLayout):
def __init__(self, **kw):
super(Panel, self).__init__(**kw)
# Make the background solid white
color = Color(1.0, 1.0, 1.0, 1.0)
self.canvas.add(color)
rect = Rectangle(pos=self.pos, size=self.size)
self.canvas.add(rect)
dropdown = DropDown()
# Add the label
label = Label(text="Report Generator", pos_hint={'x': 0, 'y': 0.20}, size_hint=(None, None))
label.color = [0.0, 0.0, 0.0, 1.0]
label.size_hint = (1, 1)
label.font_size = 26
label.bold = True
self.add_widget(label)
choice = Button(text="Select Summary Report to Generate", pos_hint={'center_x': .5, 'center_y': .58},
size_hint=(0.6, 0.2))
choice.color = [1.0, 1.0, 1.0, 1.0]
choice.size_hint = (0.45, 0.1)
choice.font_size = 18
choice.bold = False
choice.bind(on_release=dropdown.open)
self.add_widget(choice)
btn1 = Button(text='Daily Report', font_size=18, size_hint_y=None, height=60)
btn1.color = [1, 1, 1, 1]
btn1.txt= 'Generating Daily Summary Report...'
btn1.bind(on_release=lambda btn1: dropdown.select(btn1.txt))
dropdown.add_widget(btn1)
btn2 = Button(text='Weekly Report', font_size=18, size_hint_y=None, height=60)
btn2.color = [1, 1, 1, 1]
btn2.txt = 'Generating Weekly Summary Report...'
btn2.bind(on_release=lambda btn2: dropdown.select(btn2.txt))
dropdown.add_widget(btn2)
dropdown.bind(on_select=lambda instance, x: setattr(choice, 'text', x))
class Report(App):
def build(self):[enter image description here][1]
Config.set('graphics', 'width', '450')
Config.set('graphics', 'height', '250')
return Panel(size=(1000,1000))
# Application Code
if __name__ == '__main__':
Report().run()
【问题讨论】:
标签: python windows user-interface pycharm kivy