Python에서 GUI 데스크톱 응용 프로그램 만들기

12476 단어 PySimpleGUIPython

PysimpleGUI는 어떤 사람입니까?


PysimpleGUI란 무엇입니까?


PySimpleGUI는 Python 패키지로 모든 레벨의 Python 프로그래머가 GUI를 만들 수 있도록 합니다.작은 위젯이 포함된 레이아웃을 사용하여 GUI 창을 지정합니다(PysimpleGUI를 요소라고 함).레이아웃은 네 개의 지원되는 프레임 중 하나를 사용하여 창을 만들고 창을 보고 조작하는 데 사용됩니다.지원하는 프레임워크는 tkinter, Qt, WxPython, WxPython 또는 Remi를 포함합니다.이런 포장은 때때로 "포장기"라는 용어를 사용한다.
PysimpleGUI는'보일러판 코드'를 많이 설치했기 때문에 기초 프레임워크에서 직접 기술한 코드보다 간단하고 짧다.그 밖에 인터페이스는 가능한 한 필요한 결과를 얻는 데 필요한 코드를 적게 얻기 위해 간소화된다.사용하는 프로그램과 프레임워크에 따라 PysimpleGUI의 프로그램은 그 중 하나의 프레임워크를 직접 사용하여 같은 창을 만드는 것보다 코드 양이 1/2에서 1/10 사이일 수 있습니다.
대상은 사용 중인 GUI 프레임워크의 특정 대상과 코드를 봉인하고 숨기는 것이지만, 필요에 따라 프레임에 의존하는 작은 위젯과 창에 직접 접근할 수 있습니다.구성 및 기능이 공개되지 않고 PysimpleGUI API를 사용하여 액세스할 수 없는 경우 프레임워크가 차단되지 않습니다.PysimpleGUI 패키지 자체를 직접 변경하지 않고 기능을 확장할 수 있습니다.
(아래 웹 사이트의 기술에서 직접 붙여넣기)
github,readme를 통해 일본어 대응판을 확인했습니다.
• 특히, 가장 큰 장점은 파이썬으로 간단하게 GUI를 만들 수 있다는 것이다
다른 것은 tkinter, Qt, WxPython 등이 있는데, 나는 "WxPython"을 사용하지만, 다른 것보다
나는 코드를 매우 짧게 쓰지 말라고 생각한다.

설치 방법

pip install pysamplegui
↓ 학습원은 다음과 같은 내용을 사용하기 때문에 이에 따라 진행한다.
금방 쓸게요.
import PySimpleGUI as sg

sg.Window(title="hello world", layout=[[]], margins=(500, 400)).read()
다음 단계는 이벤트와 단추를 만드는 것입니다.
import PySimpleGUI as sg
from PySimpleGUI.PySimpleGUI import Window

layout = [[sg.Text("hello")], [sg.Button("OK")]]

#create window

Window = sg.Window("demo", layout)

#event roop

while True:
    event, values = Window.read()

    if event == "OK" or event == sg.WIN_CLOSED:
        break

window.close()

PySimpleGUI는 다양한 패키지를 제공합니다.


그 중 일부를 사용하여 이미지를 추출하는 프로그램을 만듭니다.
 

import PySimpleGUI as sg
import os.path


file_list_column = [
    [
        sg.Text("Image Folder"),
        sg.In(size=(25, 1), enable_events=True, key="-FOLDER-"),
        sg.FolderBrowse(),
    ],
    [
        sg.Listbox(values=[],
                   enable_events=True,
                   size=(40, 20),
                   key="-FILE LIST-")
    ],
]

image_viewer_column = [
    [sg.Text(":")],
    [sg.Text(size=(40, 1), key="-TOUT-")],
    [sg.Image(key="-IMAGE-")],
]

layout = [[
    sg.Column(file_list_column),
    sg.VSeperator(),
    sg.Column(image_viewer_column),
]]

window = sg.Window("Image Viewer", layout)

while True:
    event, values = window.read()
    if event == "Exit" or event == sg.WIN_CLOSED:
        break

if event == "-FOLDER-":
    folder = values["-FOLDER-"]
    try:
        # Get list of files

        file_list = os.listdir(folder)
    except:
        file_list = []

    fnames = [
        f for f in file_list
        if os.path.isfile(os.path.join(folder, f)) and f.lower().endswith((
            ".png", ".gif"))
    ]
    window["-FILE LIST-"].update(fnames)

elif event == "-FILE LIST-": 
    try:
        filename = os.path.join(values["-FOLDER-"], values["-FILE LIST-"][0])
        window["-TOUT-"].update(filename)
        window["-IMAGE-"].update(filename=filename)
    except:
        pass

window.close()


완성했습니다.
파일을 지정한 후 이미지 파일 목록을 표시하고 왼쪽에 이미지를 표시합니다.

감상


라즈파에 연결이 돼서 뭐든지 편하게 할 수 있는 느낌이에요.
~~~ 끝~~

좋은 웹페이지 즐겨찾기