Trăn sg

Một thẻ đã tồn tại với tên chi nhánh được cung cấp. Nhiều lệnh Git chấp nhận cả tên thẻ và tên nhánh, vì vậy việc tạo nhánh này có thể gây ra hành vi không mong muốn. Bạn có chắc chắn muốn tạo nhánh này không?

PySimpleGUI là GUI Python bao bọc các bộ công cụ GUI Python khác [Tkinter, PySide, wxPython]. Bằng cách trừu tượng hóa sự phức tạp của các GUI khác thành một API chung, bạn có thể nhanh chóng viết mã có thể được hiển thị bằng bất kỳ bộ công cụ nào khác chỉ bằng cách thay đổi phần nhập ở đầu chương trình của bạn

Nếu bạn sử dụng wxPython và bạn muốn bố trí các widget của mình, bạn sẽ sử dụng wx. máy đo kích thước. Trong PySide hoặc PyQt, bạn sẽ sử dụng đối tượng Bố cục. Tkinter sử dụng trình quản lý hình học. Khái niệm chung là giống nhau. Khi bạn sử dụng các công cụ này, bộ công cụ GUI sẽ sử dụng vị trí tương đối của các tiện ích để sắp xếp chúng trên màn hình

Trong PySimpleGUI, điều tương tự cũng được thực hiện bằng cách sử dụng danh sách lồng nhau. Bạn sẽ xem xét một vài ví dụ khác nhau trong hướng dẫn này sẽ cung cấp cho bạn ý tưởng chung về cách thức hoạt động của tất cả những điều này

Tạo bố cục ngang

Tạo một loạt các Phần tử được định hướng theo chiều ngang [từ trái sang phải] được thực hiện với một danh sách nhỏ các danh sách trong PySimpleGUI

Mở trình soạn thảo Python và thêm đoạn mã sau

import PySimpleGUI as sg

# Horizontal layout
layout = [[sg.Button[f"OK {num}"] for num in range[1, 6]]]

# Create the window
window = sg.Window["Demo", layout]

# Create an event loop
while True:
    event, values = window.read[]
    # End program if user closes window or
    # presses the OK button
    if event == "OK" or event == sg.WIN_CLOSED:
        break

window.close[]

Ở đây bạn sử dụng cách hiểu danh sách Python để tạo danh sách lồng nhau chứa năm đối tượng Nút trong đó. Khi bạn chạy mã này, bạn sẽ thấy các nút được căn chỉnh theo chiều ngang, với nút này cạnh nút kia đi từ trái sang phải

Bây giờ bạn đã sẵn sàng để xem cách bạn có thể viết lại mã để tạo bố cục dọc

Tạo bố cục dọc

Để tạo bố cục theo chiều dọc với PySimpleGUI, bạn cần tạo bố cục chứa một loạt danh sách lồng nhau, mỗi danh sách chứa một hoặc nhiều Phần tử trong đó

Tạo một tệp Python mới và thêm mã này vào nó

import PySimpleGUI as sg

layout = [[sg.Button["OK"]],
          [sg.Button["OK 2"]],
          [sg.Button["OK 3"]],
          [sg.Button["OK 4"]],
          [sg.Button["OK 5"]]]

# Create the window
window = sg.Window["Demo", layout]

# Create an event loop
while True:
    event, values = window.read[]
    # End program if user closes window or
    # presses the OK button
    if event == "OK" or event == sg.WIN_CLOSED:
        break

window.close[]

Khi bạn chạy mã này, các Thành phần nút sẽ được xếp chồng lên nhau từ trên xuống dưới theo chiều dọc, thay vì theo chiều ngang

Sử dụng Cột cho Bố cục Phức tạp

Nếu bạn cần thêm hai hoặc nhiều cột Phần tử cạnh nhau trong PySimpleGUI, bạn có thể sử dụng sg. Phần tử cột. Nó là một loại Phần tử chứa được tạo riêng để tạo các bộ Phần tử xếp chồng lên nhau

Tạo một tệp Python khác và thêm đoạn mã sau

import PySimpleGUI as sg
import os.path


# First the window layout in 2 columns
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-"]],
]


# For now will only show the name of the file that was chosen
image_viewer_column = [
    [sg.Text["Choose an image from list on left:"]],
    [sg.Text[size=[40, 1], key="-TEXT-"]],
    [sg.Image[key="-IMAGE-"]],
]

# ----- Full layout -----
layout = [
    [sg.Column[file_list_column],
     sg.VSeperator[],
     sg.Column[image_viewer_column],]
]


window = sg.Window["Column Demo", layout]


# Run the Event Loop
while True:
    event, values = window.read[]

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

    # Folder name was filled in, make a list of files in the folder
    if event == "-FOLDER-":
        folder = values["-FOLDER-"]
        try:
            # Get list of files in folder
            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-":  # A file was chosen from the listbox

        try:
            filename = os.path.join[values["-FOLDER-"], values["-FILE LIST-"][0]]
            window["-TEXT-"].update[filename]
            window["-IMAGE-"].update[filename=filename]
        except:
            pass

window.close[]

Trong ví dụ này, bạn tạo hai bố cục. Bố cục đầu tiên được gọi là file_list_column và chứa bốn Phần tử trong đó. Bố cục thứ hai được gọi là image_viewer_column và chứa ba Phần tử. Sau đó, bạn đặt các bố cục này bên trong các Cột nằm trong một bố cục. Như bạn có thể thấy, bố cục PySimpleGUI là các danh sách bên trong danh sách từ đầu đến cuối

kết thúc

PySimpleGUI loại bỏ một số sự phức tạp của việc tạo bố cục bằng cách sử dụng danh sách Python. Bộ công cụ GUI PyQt / PySide và wxPython sử dụng cách tiếp cận hướng đối tượng bao gồm một số lượng đáng kể bản mẫu và cờ để thực hiện nhiều việc tương tự. Mỗi người đều có sự đánh đổi của mình, nhưng đường cong học tập của PySimpleGUI phẳng hơn nhiều vì sự lựa chọn thiết kế của họ

Bạn có thể tạo GUI bằng Python không?

Việc tạo giao diện người dùng đồ họa [GUI] đơn giản hoạt động trên nhiều nền tảng có thể phức tạp. Nhưng không nhất thiết phải như vậy. Bạn có thể sử dụng Python và gói PySimpleGUI để tạo giao diện người dùng đẹp mắt mà bạn và người dùng của bạn sẽ thích.

Kích thước trong PySimpleGUI là gì?

Kích thước phần tử mặc định cho PySimpleGUI là [45,1] . Kích thước có thể được đặt ở cấp phần tử hoặc trong trường hợp này, các biến kích thước áp dụng cho tất cả các phần tử trong biểu mẫu. Đặt size=[20,1] trong lệnh gọi tạo biểu mẫu sẽ đặt tất cả các phần tử trong biểu mẫu thành kích thước đó. Ngoài kích thước còn có tùy chọn tỷ lệ.

PySimpleGUI có hoạt động trên Android không?

PySimpleGUI không hoạt động với android .

Chủ Đề