Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bina aplikasi desktop dengan Python dan Kivy

Bina aplikasi desktop dengan Python dan Kivy

WBOY
WBOYasal
2023-06-17 08:49:501631semak imbas

Dalam beberapa tahun kebelakangan ini, bahasa Python semakin popular dalam bidang pembangunan perisian kerana ciri-cirinya seperti mudah dipelajari, mudah digunakan dan mudah diselenggara. Kivy ialah rangka kerja Python untuk membina antara muka pengguna (UI) merentas platform dan digunakan secara meluas untuk membina aplikasi mudah alih. Walau bagaimanapun, aplikasi desktop juga boleh dibina menggunakan Kivy, dan artikel ini akan memperkenalkan cara membina aplikasi desktop menggunakan Python dan Kivy.

  1. Pasang Python dan Kivy

Mula-mula anda perlu memasang Python dan Kivy. Pemasangan Python sangat mudah, cuma muat turun versi yang sesuai untuk sistem pengendalian anda dari laman web rasmi. Selepas pemasangan selesai, buka tetingkap baris arahan dan masukkan arahan berikut untuk memasang rangka kerja Kivy:

pip install kivy

Jika anda menghadapi masalah pemasangan, sila semak dokumentasi Kivy rasmi untuk menyelesaikan masalah.

  1. Buat Aplikasi Kivy dan Jalankan

Seterusnya, kita perlu mencipta aplikasi Kivy dan jalankannya untuk memastikan semuanya berfungsi dengan betul. Dalam IDE (Persekitaran Pembangunan Bersepadu) pilihan anda (cth. PyCharm), cipta fail Python dan masukkan kod berikut:

import kivy
kivy.require('2.0.0')
from kivy.app import App
from kivy.uix.label import Label

class TestApp(App):
    def build(self):
        return Label(text='Hello, World!')

if __name__ == '__main__':
    TestApp().run()

Terangkan secara ringkas kod ini: Mula-mula, import perpustakaan Kivy dan komponen yang diperlukan, kemudian Tentukan kelas aplikasi yang dipanggil TestApp. Kelas ini mewarisi daripada Apl dan mempunyai kaedah binaan yang mengembalikan objek dengan label teks Hello World. Akhir sekali, gunakan pernyataan if __name__ == '__main__': untuk menjalankan kelas aplikasi TestApp.

Sekarang, simpan kod ini sebagai main.py atau mana-mana nama lain dan navigasi ke direktori yang mengandungi fail ini dalam tetingkap baris arahan dan jalankan arahan berikut:

python main.py

Jika semuanya Biasanya, anda harus melihat label yang mengatakan "Hello, World!" Kini setelah kami berjaya mencipta aplikasi Kivy, kami akan memberi tumpuan kepada cara mereka bentuk antara muka pengguna yang cantik.

  1. Reka bentuk antara muka pengguna Kivy

Dalam Kivy, antara muka pengguna terdiri daripada widget (Widget), seperti label teks, butang, imej, dsb. Setiap widget mempunyai banyak sifat dan kaedah yang boleh digunakan untuk penggayaan, pemformatan, membalas input dan interaksi pengguna, dan banyak lagi.

Berikut ialah contoh mudah yang menunjukkan cara menggunakan GridLayout Kivy dan menambah tiga jenis widget yang berbeza: dua label dan satu butang.

import kivy
kivy.require('2.0.0')

from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout

class MyGridLayout(GridLayout):
    def __init__(self, **kwargs):
        super(MyGridLayout, self).__init__(**kwargs)
        self.cols = 1 # 将列数设置为1

        # 添加第一个标签
        self.add_widget(Label(text="Name:"))

        # 添加第一个输入框
        self.name = TextInput(multiline=False)
        self.add_widget(self.name)

        # 添加第二个标签
        self.add_widget(Label(text="Favorite Color:"))

        # 添加第二个输入框
        self.color = TextInput(multiline=False)
        self.add_widget(self.color)

        # 添加按钮
        self.submit = Button(text="Submit", font_size=16)
        self.submit.bind(on_press=self.press)
        self.add_widget(self.submit)

    def press(self, instance):
        name = self.name.text
        color = self.color.text

        # 将文本清空
        self.name.text = ""
        self.color.text = ""

        print(f'Hello, {name}, you like {color}!')

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

if __name__ == '__main__':
    MyApp().run()

Kod ini menggunakan GridLayout untuk menyusun semua widget ke dalam lajur yang berasingan. Dalam pembina, kami menambah dua label dan dua kotak input teks dan mencetak teks input apabila butang "Serah" diklik.

Sekarang kita telah memahami cara menggunakan Kivy untuk mencipta antara muka pengguna yang cantik, mari kita perkenalkan secara ringkas cara untuk menyepadukan kod Python.

  1. Mengintegrasikan kod Python

Setakat ini kami telah dapat mencipta antara muka pengguna menggunakan Python dan Kivy, tetapi jika terdapat keperluan untuk menyepadukan kod Python lain ke dalam permohonan, Memerlukan beberapa kerja tambahan.

Pertimbangkan situasi berikut: anda perlu menggunakan pustaka Pandas untuk memuatkan dan memproses data dalam aplikasi anda. Mula-mula, masukkan arahan berikut dalam baris arahan untuk memasang Pandas:

pip install pandas

Kemudian, buka fail main.py dan import perpustakaan numpy dan panda pada permulaan fail, contohnya:

import numpy as np
import pandas as pd

dalam MyGridLayout Tambah kaedah baharu load_data, yang menggunakan perpustakaan panda untuk memuatkan data dan menambahkannya pada GridLayout. Contohnya:

def load_data(self, filename):
    df = pd.read_csv(filename)

    for index, row in df.iterrows():
        # 添加文本标签来显示数据
        self.add_widget(Label(text=row['name']))
        self.add_widget(Label(text=row['color']))
        self.add_widget(Label(text=row['fruit']))

Anda kini boleh menggunakan kaedah ini untuk memuatkan fail data dalam aplikasi anda dan memaparkannya sebagai antara muka pengguna Kivy.

Ringkasnya, artikel ini memperkenalkan cara menggunakan Python dan Kivy untuk membina aplikasi desktop, termasuk memasang Python dan Kivy, mencipta aplikasi Kivy dan mereka bentuk antara muka pengguna Kivy. Selain itu, cara mengintegrasikan kod Python diterangkan. Saya harap artikel ini berguna kepada pembaca yang ingin membina aplikasi desktop menggunakan Kivy.

Atas ialah kandungan terperinci Bina aplikasi desktop dengan Python dan Kivy. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn