@
Windyzhou 我好久没用 kivy 了,你这么一问,我刚才试了一下,两三分钟就装好了。环境如下:
Windows 11, 64 位
用到的命令如下:
1. 新建一个文件夹
2. 创建 python 虚拟环境:
python -m venv kivy_venv
3. 激活虚拟环境:
kivy_venv\Scripts\activate
4. 安装 kivy:
python -m pip install "kivy[base]"
5. 创建一个简单的 ui 文件, 命名为
app.py , 文件内容在最底下。
6. 运行就出来 UI 界面了
python
app.py```
from
kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.textinput import TextInput
class CalculatorApp(App):
def build(self):
# Main layout
layout = BoxLayout(orientation='vertical', padding=10, spacing=10)
# Text input for display
self.display = TextInput(
multiline=False,
readonly=True,
halign='right',
font_size=32,
size_hint_y=0.2
)
layout.add_widget(self.display)
# Create buttons layout
buttons = [
['7', '8', '9', '/'],
['4', '5', '6', '*'],
['1', '2', '3', '-'],
['.', '0', 'C', '+']
]
# Add button grid
for row in buttons:
h_layout = BoxLayout()
for label in row:
button = Button(
text=label,
pos_hint={'center_x': 0.5, 'center_y': 0.5}
)
button.bind(on_press=self.on_button_press)
h_layout.add_widget(button)
layout.add_widget(h_layout)
# Add equals button
equals_button = Button(
text='=',
size_hint_y=0.2,
background_color=[1, 0, 0, 1] # Red color
)
equals_button.bind(on_press=self.on_solution)
layout.add_widget(equals_button)
return layout
def on_button_press(self, instance):
current = self.display.text
button_text = instance.text
if button_text == 'C':
# Clear the display
self.display.text = ''
else:
# Add the button text to display
self.display.text = current + button_text
def on_solution(self, instance):
try:
# Evaluate the expression
self.display.text = str(eval(self.display.text))
except:
self.display.text = 'Error'
if __name__ == '__main__':
CalculatorApp().run()
```