Hướng dẫn how to convert python code to gui - làm thế nào để chuyển đổi mã python thành gui

Rất ít người chạy các chương trình Python bằng cách nhấp đúp vào tệp .py như thể đó là tệp .exe. Khi một người dùng điển hình (các loại không lập trình) nhấp đúp vào tệp .exe, họ hy vọng nó sẽ mở bằng một cửa sổ mà họ có thể tương tác. Mặc dù GUI, sử dụng Tkinter, có thể sử dụng cài đặt Python tiêu chuẩn, nhưng không có nhiều chương trình nào làm điều này.

Điều gì sẽ xảy ra nếu nó rất dễ dàng & nbsp; để mở một chương trình Python vào một GUI mà người mới bắt đầu hoàn thành có thể làm điều đó? Có ai quan tâm không? Có ai sử dụng nó không? Thật khó để trả lời vì cho đến nay, nó không dễ dàng & nbsp; để xây dựng một GUI tùy chỉnh.

Dường như có một khoảng cách trong khả năng thêm GUI vào chương trình/kịch bản Python. Người mới bắt đầu hoàn thành chỉ bằng cách sử dụng dòng lệnh và nhiều lập trình viên nâng cao không muốn dành thời gian cần thiết để mã hóa GUI Tkinter.

Khung GUI

Không thiếu khung GUI cho Python. Tkinter, Wxpython, Qt và Kivy là một vài trong số các gói chính. Ngoài ra, có một số lượng lớn các gói GUI bị câm xuống "bao bọc" một trong những gói chính, bao gồm EasyGui, PyGui và Pyforms.

Vấn đề là người mới bắt đầu (những người có ít hơn sáu tuần kinh nghiệm) không thể học ngay cả những gói đơn giản nhất trong số các gói chính. Điều đó khiến các gói trình bao bọc là một tùy chọn tiềm năng, nhưng hầu hết người dùng mới vẫn sẽ khó khăn hoặc không thể xây dựng bố cục GUI tùy chỉnh. Ngay cả khi có thể, các trình bao bọc vẫn yêu cầu các trang mã.

Pysimplegui cố gắng giải quyết các thách thức GUI này bằng cách cung cấp giao diện siêu đơn giản, dễ hiểu cho GUI có thể dễ dàng tùy chỉnh. Ngay cả nhiều GUI phức tạp cũng yêu cầu ít hơn 20 dòng mã khi sử dụng pysimplegui.

Bí mật

Điều làm cho Pysimplegui vượt trội cho người mới đến là gói chứa phần lớn mã mà người dùng thường được dự kiến ​​sẽ viết. Các cuộc gọi lại nút được xử lý bởi PysimpleGui, không phải mã của người dùng. Người mới bắt đầu đấu tranh để nắm bắt khái niệm về một chức năng và mong họ hiểu chức năng gọi lại trong vài tuần đầu tiên là một sự kéo dài.

Với hầu hết các GUI, việc sắp xếp các tiện ích GUI thường yêu cầu một số dòng mã, ít nhất một hoặc hai dòng trên mỗi tiện ích. PysimpleGui sử dụng "auto-packer" tự động tạo bố cục. Không cần hệ thống gói hoặc lưới để bố trí cửa sổ GUI.

Cuối cùng, Pysimplegui tận dụng các cấu trúc ngôn ngữ Python theo những cách thông minh rút ngắn lượng mã và trả lại dữ liệu GUI một cách đơn giản. Khi một tiện ích được tạo trong bố cục biểu mẫu, nó được cấu hình tại chỗ, không phải là một số dòng mã.

GUI là gì?

Hầu hết các GUI làm một điều: Thu thập thông tin từ người dùng và trả lại. Từ quan điểm của một lập trình viên, điều này có thể được tóm tắt như một cuộc gọi chức năng trông như thế này:

button, values = GUI_Display(gui_layout)

Điều mong đợi từ hầu hết các GUI là nút được nhấp (ví dụ: OK, Hủy, lưu, có, không, v.v.) và các giá trị đầu vào của người dùng. Bản chất của GUI có thể được đun sôi xuống một dòng mã duy nhất.

Đây chính xác là cách Pysimplegui hoạt động (đối với GUI đơn giản). Khi cuộc gọi được thực hiện để hiển thị GUI, không có gì thực thi cho đến khi nhấp vào nút sẽ đóng biểu mẫu.

Có những GUI phức tạp hơn, chẳng hạn như những GUI không đóng sau khi nhấp vào nút. Các ví dụ bao gồm giao diện điều khiển từ xa cho robot và cửa sổ trò chuyện. Những hình thức phức tạp này cũng có thể được tạo ra với pysimplegui.

Tạo GUI nhanh chóng

Khi nào Pysimplegui hữu ích? Ngay lập tức, bất cứ khi nào bạn cần GUI. Chỉ mất chưa đầy năm phút để tạo và thử GUI. Cách nhanh nhất để làm GUI là sao chép một từ sách nấu ăn Pysimplegui. Thực hiện theo các bước sau:

  • Tìm một GUI trông giống với những gì bạn muốn tạo
  • Sao chép mã từ sách nấu ăn
  • Dán nó vào ide của bạn và chạy nó

Chúng ta hãy nhìn vào công thức đầu tiên từ cuốn sách.

import PySimpleGUI as sg

# Very basic form.  Return values as a list
form = sg.FlexForm('Simple data entry form')  # begin with a blank form

layout = [
          [sg.Text('Please enter your Name, Address, Phone')],
          [sg.Text('Name', size=(15, 1)), sg.InputText('name')],
          [sg.Text('Address', size=(15, 1)), sg.InputText('address')],
          [sg.Text('Phone', size=(15, 1)), sg.InputText('phone')],
          [sg.Submit(), sg.Cancel()]
         ]

button, values = form.LayoutAndRead(layout)

print(button, values[0], values[1], values[2])

Đó là một hình thức có kích thước hợp lý.

Hướng dẫn how to convert python code to gui - làm thế nào để chuyển đổi mã python thành gui

Nếu bạn chỉ cần thu thập một vài giá trị và tất cả chúng về cơ bản, bạn có thể sao chép công thức này và sửa đổi nó cho phù hợp với nhu cầu của bạn.

Bạn thậm chí có thể tạo một bố cục GUI tùy chỉnh chỉ trong năm dòng mã.

import PySimpleGUI as sg

form = sg.FlexForm('My first GUI')

layout = [ [sg.Text('Enter your name'), sg.InputText()],
           [sg.OK()] ]

button, (name,) = form.LayoutAndRead(layout)

Hướng dẫn how to convert python code to gui - làm thế nào để chuyển đổi mã python thành gui

Tạo GUI tùy chỉnh trong năm phút

Nếu bạn có bố cục đơn giản, bạn sẽ có thể tạo một bố cục tùy chỉnh trong pysimplegui trong vòng chưa đầy năm phút bằng cách sửa đổi mã từ sách nấu ăn.

Các vật dụng được gọi là các yếu tố trong pysimplegui. Các yếu tố này được đánh vần chính xác như bạn sẽ nhập chúng vào mã Python của bạn.

Yếu tố cốt lõi

Text
InputText
Multiline
InputCombo
Listbox
Radio
Checkbox
Spin
Output
SimpleButton
RealtimeButton
ReadFormButton
ProgressBar
Image
Slider
Column

Danh sách phím tắt

Pysimplegui cũng có hai loại phím tắt phần tử. Một loại chỉ đơn giản là các tên khác cho cùng một phần tử (ví dụ:

import PySimpleGUI as sg

# Very basic form.  Return values as a list
form = sg.FlexForm('Simple data entry form')  # begin with a blank form

layout = [
          [sg.Text('Please enter your Name, Address, Phone')],
          [sg.Text('Name', size=(15, 1)), sg.InputText('name')],
          [sg.Text('Address', size=(15, 1)), sg.InputText('address')],
          [sg.Text('Phone', size=(15, 1)), sg.InputText('phone')],
          [sg.Submit(), sg.Cancel()]
         ]

button, values = form.LayoutAndRead(layout)

print(button, values[0], values[1], values[2])

5 thay vì

import PySimpleGUI as sg

# Very basic form.  Return values as a list
form = sg.FlexForm('Simple data entry form')  # begin with a blank form

layout = [
          [sg.Text('Please enter your Name, Address, Phone')],
          [sg.Text('Name', size=(15, 1)), sg.InputText('name')],
          [sg.Text('Address', size=(15, 1)), sg.InputText('address')],
          [sg.Text('Phone', size=(15, 1)), sg.InputText('phone')],
          [sg.Submit(), sg.Cancel()]
         ]

button, values = form.LayoutAndRead(layout)

print(button, values[0], values[1], values[2])

6). Loại thứ hai định cấu hình một phần tử với một cài đặt cụ thể, khiến bạn chỉ định tất cả các tham số (ví dụ:

import PySimpleGUI as sg

# Very basic form.  Return values as a list
form = sg.FlexForm('Simple data entry form')  # begin with a blank form

layout = [
          [sg.Text('Please enter your Name, Address, Phone')],
          [sg.Text('Name', size=(15, 1)), sg.InputText('name')],
          [sg.Text('Address', size=(15, 1)), sg.InputText('address')],
          [sg.Text('Phone', size=(15, 1)), sg.InputText('phone')],
          [sg.Submit(), sg.Cancel()]
         ]

button, values = form.LayoutAndRead(layout)

print(button, values[0], values[1], values[2])

7 là một nút có văn bản "gửi" trên đó)

T = Text
Txt = Text
In = InputText
Input = IntputText
Combo = InputCombo
DropDown = InputCombo
Drop = InputCombo

Phím tắt nút

Một số nút phổ biến đã được triển khai dưới dạng phím tắt. Bao gồm các:

FolderBrowse
FileBrowse
FileSaveAs
Save
Submit
OK
Ok
Cancel
Quit
Exit
Yes
No

Ngoài ra còn có các phím tắt cho các chức năng nút chung hơn.

SimpleButton
ReadFormButton
RealtimeButton

Đây là tất cả các vật dụng GUI bạn có thể chọn trong Pysimplegui. Nếu một người không có trong các danh sách này, nó sẽ không đi vào bố cục biểu mẫu của bạn.

Mô hình thiết kế GUI

Những thứ có xu hướng không thay đổi trong GUI là các cuộc gọi thiết lập và hiển thị một cửa sổ. Bố cục của các yếu tố là những gì thay đổi từ chương trình này sang chương trình khác.

Dưới đây là mã từ ví dụ trên với bố cục bị xóa:

import PySimpleGUI as sg

form = sg.FlexForm('Simple data entry form')
# Define your form here (it's a list of lists)
button, values = form.LayoutAndRead(layout)

Dòng chảy cho hầu hết các GUI là:

  • Tạo đối tượng biểu mẫu
  • Xác định GUI là danh sách các danh sách
  • Hiển thị GUI và nhận kết quả

Đây là những gì bạn thấy trong mô hình thiết kế của Pysimplegui.

Bố cục GUI

Để tạo GUI tùy chỉnh của bạn, trước tiên hãy chia biểu mẫu của bạn thành các hàng, bởi vì các biểu mẫu được xác định một hàng cùng một lúc. Sau đó đặt một yếu tố này đến yếu tố khác, làm việc từ trái sang phải.

Kết quả là một "danh sách danh sách" trông giống như thế này:

layout = [  [Text('Row 1')],
            [Text('Row 2'), Checkbox('Checkbox 1', OK()), Checkbox('Checkbox 2'), OK()] ]

Bố cục này tạo ra cửa sổ này:

Hướng dẫn how to convert python code to gui - làm thế nào để chuyển đổi mã python thành gui

Hiển thị GUI

Khi bạn đã hoàn tất bố cục của mình và bạn đã sao chép các dòng mã được thiết lập và hiển thị biểu mẫu, đã đến lúc hiển thị biểu mẫu và nhận các giá trị từ người dùng.

Đây là dòng mã hiển thị biểu mẫu và cung cấp kết quả:

button, values = form.LayoutAndRead(layout)

Các biểu mẫu Trả về hai giá trị: Văn bản của nút được nhấp và danh sách các giá trị mà người dùng nhập vào biểu mẫu.

Nếu biểu mẫu ví dụ được hiển thị và người dùng không làm gì khác ngoài việc nhấp vào nút OK, kết quả sẽ là:

import PySimpleGUI as sg

# Very basic form.  Return values as a list
form = sg.FlexForm('Simple data entry form')  # begin with a blank form

layout = [
          [sg.Text('Please enter your Name, Address, Phone')],
          [sg.Text('Name', size=(15, 1)), sg.InputText('name')],
          [sg.Text('Address', size=(15, 1)), sg.InputText('address')],
          [sg.Text('Phone', size=(15, 1)), sg.InputText('phone')],
          [sg.Submit(), sg.Cancel()]
         ]

button, values = form.LayoutAndRead(layout)

print(button, values[0], values[1], values[2])

0

Các phần tử kiểm tra trả về một giá trị đúng hoặc sai. Bởi vì các hộp kiểm được mặc định là không được kiểm soát, cả hai giá trị được trả về đều là sai.

Hiển thị kết quả

Khi bạn có các giá trị từ GUI, thật tuyệt khi kiểm tra các giá trị nào trong các biến. Thay vì in chúng ra bằng cách sử dụng câu lệnh

import PySimpleGUI as sg

# Very basic form.  Return values as a list
form = sg.FlexForm('Simple data entry form')  # begin with a blank form

layout = [
          [sg.Text('Please enter your Name, Address, Phone')],
          [sg.Text('Name', size=(15, 1)), sg.InputText('name')],
          [sg.Text('Address', size=(15, 1)), sg.InputText('address')],
          [sg.Text('Phone', size=(15, 1)), sg.InputText('phone')],
          [sg.Submit(), sg.Cancel()]
         ]

button, values = form.LayoutAndRead(layout)

print(button, values[0], values[1], values[2])

8, hãy gắn bó với ý tưởng GUI và xuất dữ liệu vào cửa sổ.

Pysimplegui có một số hộp tin nhắn để lựa chọn. Dữ liệu được truyền vào hộp thông báo được hiển thị trong một cửa sổ. Hàm có bất kỳ số lượng đối số. Bạn chỉ có thể chỉ ra tất cả các biến bạn muốn xem trong cuộc gọi.

Hộp thông báo được sử dụng phổ biến nhất trong pysimplegui là Msgbox. Để hiển thị kết quả từ ví dụ trước, hãy viết:

import PySimpleGUI as sg

# Very basic form.  Return values as a list
form = sg.FlexForm('Simple data entry form')  # begin with a blank form

layout = [
          [sg.Text('Please enter your Name, Address, Phone')],
          [sg.Text('Name', size=(15, 1)), sg.InputText('name')],
          [sg.Text('Address', size=(15, 1)), sg.InputText('address')],
          [sg.Text('Phone', size=(15, 1)), sg.InputText('phone')],
          [sg.Submit(), sg.Cancel()]
         ]

button, values = form.LayoutAndRead(layout)

print(button, values[0], values[1], values[2])

1

Để tất cả chúng cùng nhau

Bây giờ bạn đã biết những điều cơ bản, chúng ta hãy tập hợp một hình thức chứa càng nhiều yếu tố của Pysimplegui càng tốt. Ngoài ra, để cho nó một vẻ ngoài đẹp, chúng tôi sẽ thay đổi "cái nhìn và cảm nhận" thành một bảng màu xanh lá cây và màu nâu.

import PySimpleGUI as sg

# Very basic form.  Return values as a list
form = sg.FlexForm('Simple data entry form')  # begin with a blank form

layout = [
          [sg.Text('Please enter your Name, Address, Phone')],
          [sg.Text('Name', size=(15, 1)), sg.InputText('name')],
          [sg.Text('Address', size=(15, 1)), sg.InputText('address')],
          [sg.Text('Phone', size=(15, 1)), sg.InputText('phone')],
          [sg.Submit(), sg.Cancel()]
         ]

button, values = form.LayoutAndRead(layout)

print(button, values[0], values[1], values[2])

2

Điều này có vẻ như rất nhiều mã, nhưng hãy thử mã hóa bố cục GUI tương tự này trực tiếp trong Tkinter và bạn sẽ nhanh chóng nhận ra nó nhỏ như thế nào.

Hướng dẫn how to convert python code to gui - làm thế nào để chuyển đổi mã python thành gui

Dòng mã cuối cùng mở một hộp thông báo. Cái này nó thì trông như thế nào:

Hướng dẫn how to convert python code to gui - làm thế nào để chuyển đổi mã python thành gui

Mỗi tham số cho cuộc gọi hộp thông báo được hiển thị trên một dòng mới. Có hai dòng văn bản trong hộp tin nhắn; Dòng thứ hai rất dài và kết thúc một số lần

Hãy dành một chút thời gian và ghép các giá trị kết quả với GUI để hiểu về cách tạo và trả về kết quả.

Thêm GUI vào chương trình hoặc tập lệnh của bạn

Nếu bạn có một tập lệnh sử dụng dòng lệnh, bạn không cần phải từ bỏ nó để thêm GUI. Một giải pháp dễ dàng là nếu có các tham số bằng không được đưa ra trên dòng lệnh, thì GUI được chạy. Nếu không, thực hiện dòng lệnh như bạn làm ngày hôm nay.

Loại logic này là tất cả những gì cần thiết:

import PySimpleGUI as sg

# Very basic form.  Return values as a list
form = sg.FlexForm('Simple data entry form')  # begin with a blank form

layout = [
          [sg.Text('Please enter your Name, Address, Phone')],
          [sg.Text('Name', size=(15, 1)), sg.InputText('name')],
          [sg.Text('Address', size=(15, 1)), sg.InputText('address')],
          [sg.Text('Phone', size=(15, 1)), sg.InputText('phone')],
          [sg.Submit(), sg.Cancel()]
         ]

button, values = form.LayoutAndRead(layout)

print(button, values[0], values[1], values[2])

3

Cách dễ nhất để có được GUI và chạy nhanh là sao chép và sửa đổi một trong các công thức nấu ăn từ cuốn sách nấu ăn & nbsp; pysimplegui.

Có một số thú vị! Gia vị các kịch bản bạn mệt mỏi khi chạy bằng tay. Dành 5 hoặc 10 phút chơi với các tập lệnh demo. Bạn có thể tìm thấy một người đã tồn tại chính xác những gì bạn cần. Nếu không, bạn sẽ thấy nó đơn giản & nbsp; để tạo ra của riêng bạn. Nếu bạn thực sự bị lạc, bạn chỉ đầu tư 10 phút.

Tài nguyên

Cài đặt

Pysimplegui hoạt động trên tất cả các hệ thống chạy Tkinter, bao gồm Raspberry Pi và nó đòi hỏi Python 3

import PySimpleGUI as sg

# Very basic form.  Return values as a list
form = sg.FlexForm('Simple data entry form')  # begin with a blank form

layout = [
          [sg.Text('Please enter your Name, Address, Phone')],
          [sg.Text('Name', size=(15, 1)), sg.InputText('name')],
          [sg.Text('Address', size=(15, 1)), sg.InputText('address')],
          [sg.Text('Phone', size=(15, 1)), sg.InputText('phone')],
          [sg.Submit(), sg.Cancel()]
         ]

button, values = form.LayoutAndRead(layout)

print(button, values[0], values[1], values[2])

4

Tài liệu

  • Thủ công
  • Sách nấu ăn
  • Kho lưu trữ GitHub

Bạn có thể làm GUI Python không?

Tạo giao diện người dùng đồ họa đơn giản (GUI) hoạt động trên nhiều nền tảng có thể phức tạp. Nhưng nó không phải là như vậy. Bạn có thể sử dụng gói Python và 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!You can use Python and the PySimpleGUI package to create nice-looking user interfaces that you and your users will enjoy!

Làm cách nào để chuyển đổi mã python thành máy tính để bàn?

Sử dụng tự động-py-to-exe..
Mở dấu nhắc lệnh bằng cách tìm kiếm CMD.....
Chạy tự động-py-to-exe từ lời nhắc.....
Nhấp vào Duyệt và điều hướng đến tệp Python ví dụ của chúng tôi.....
Đặt ứng dụng để sử dụng một tệp.....
Đặt ứng dụng thành bảng điều khiển dựa trên.....
Nhấp vào biểu tượng thả xuống và chọn biểu tượng cho ứng dụng của bạn ..

Làm thế nào để bạn chuyển đổi mã GUI?

Liên kết trực tiếp đến câu trả lời này..
1) Chuyển đổi mã của bạn thành một chức năng ..
2) Tạo một phần tử GUI cho mọi đầu vào cho chức năng của bạn.....
3) Khi bạn mở tập lệnh tương ứng với GUI, hầu hết các yếu tố sẽ cho bạn biết cách truy cập vào đầu vào, một cái gì đó như:.
và gán điều đó cho một biến toàn cầu:.
4) Tạo nút chạy trên GUI ..