Python PySimpleGUI Kütüphanesi İle Dönüştürücü Projesi

0 14

PySimpleGUI python ile harikalar yaratabileceğiniz bir arayüz kütüphanesi. Kullanımı oldukça basit olan bu kütüphane ile birçok farklı arayüz geliştirebilirsiniz. Bu kütüphane ile ilgili daha fazla bilgi edinmek için PySimpleGUI kütüphanesinin anasayfasını ziyaret edebilirsiniz.

Sisteminize PySimpleGUI kütüphanesini eklemek için:

pip install PySimpleGUI 

komutlarını çalıştırmanız gerekiyor.

Bu örneğimizde PySimpleGUI kütüphanesini kullanarak basit bir dönüştürücü yapacağız. Dönüştürücü kg to pound, saniye – dakika, km-mil dönüşümlerini hesaplayıp ekrana yazdıracaktır.

PySimpleGUI İle Dönüştürücü Yapımı

PySimpleGUI Dönüştürücü Conventer

Alttaki kısa kod ile yukarıdaki gibi bir arayüze sahip projemizi tamamlamış oluyoruz. Kodu biraz inceleyecek olursak Python 3.10 ile gelen match-case yapısı kullanıldığı görülüyor. Eğer Python 3.10 sürümüne geçmemişseniz alttaki kod çalışmayacaktır. En alttaki koda bakmanı gerekmektedir.

import PySimpleGUI as sg
     
    layout = [
        [
            sg.Input(key = '-INPUT-'),
            sg.Spin(['km to mile','kg to pound','sec to min'], key = '-UNITS-'), 
            sg.Button('Convert', key = '-CONVERT-')
        ],
        [sg.Text('Output', key = '-OUTPUT-')]
    ]
     
    window = sg.Window('Converter',layout)
     
    while True:
        event, values = window.read()
     
        if event == sg.WIN_CLOSED:
            break
     
        if event == '-CONVERT-':
            input_value = values['-INPUT-']
            if input_value.isnumeric():
                match values['-UNITS-']:
                    case 'km to mile':
                        output = round(float(input_value) * 0.6214,2)
                        output_string = f'{input_value} km are {output} miles.'
                    case 'kg to pound':
                        output = round(float(input_value) * 2.20462,2)
                        output_string = f'{input_value} kg are {output} pounds.'
                    case 'sec to min':
                        output = round(float(input_value) / 60,2)
                        output_string = f'{input_value} seconds are {output} minutes.'
     
                window['-OUTPUT-'].update(output_string)
            else:
                window['-OUTPUT-'].update('Please enter a number')
     
    window.close()

Python 3.10 sürümünden eski sürümleri kullananlar için match -case yapısını if-elif yapısı kullanarak tekrar düzenledim ve aynı işlevi gören kodları paylaşıyorum.

    import PySimpleGUI as sg
     
    layout = [
        [
            sg.Input(key = '-INPUT-'),
            sg.Spin(['km to mile','kg to pound','sec to min'], key = '-UNITS-'), 
            sg.Button('Convert', key = '-CONVERT-')
        ],
        [sg.Text('Output', key = '-OUTPUT-')]
    ]
     
    window = sg.Window('Converter',layout)
     
    while True:
        event, values = window.read()
     
        if event == sg.WIN_CLOSED:
            break
     
        if event == '-CONVERT-':
            input_value = values['-INPUT-']
            if input_value.isnumeric():
                if values['-UNITS-']=='km to mile':
                        output = round(float(input_value) * 0.6214,2)
                        output_string = f'{input_value} km are {output} miles.'
                elif values['-UNITS-']=='kg to pound':
                        output = round(float(input_value) * 2.20462,2)
                        output_string = f'{input_value} kg are {output} pounds.'
                elif values['-UNITS-']== 'sec to min':
                        output = round(float(input_value) / 60,2)
                        output_string = f'{input_value} seconds are {output} minutes.'
     
                window['-OUTPUT-'].update(output_string)
            else:
                window['-OUTPUT-'].update('Please enter a number')
     
    window.close()

Bu yazımızda PySimpleGUI kullanarak basit bir uygulama geliştirdik. Bu kütüphaneyi kullanarak geliştireceğimiz farklı örnekeleri de ileride sizlerle paylaşmaya devam edeceğim. Yorumlarınızı bekliyorum.

Cevap bırakın

E-posta hesabınız yayımlanmayacak.

Bu web sitesi deneyiminizi geliştirmek için çerezleri kullanır. Bununla iyi olduğunuzu varsayacağız, ancak isterseniz vazgeçebilirsiniz. Kabul etmek Mesajları Oku