不會(huì)Python GUI?這些框架可太友好了
當(dāng)談到Python圖形用戶界面(GUI)框架,對(duì)于初學(xué)者來說,可能會(huì)感到困惑,但實(shí)際上,入門并沒有想象的那么難。有很多肥腸友好的庫供大家選擇,一起看看吧
PyGUI
PyGUI允許開發(fā)人員將Python獨(dú)特功能與應(yīng)用程序無縫結(jié)合,它被設(shè)計(jì)為易于使用、動(dòng)態(tài)、GPU 加速和跨平臺(tái)。支持Windows、macOS 和 Linux。提供了廣泛的 GUI 元素,例如按鈕、單選按鈕、菜單以及用于創(chuàng)建功能布局的各種方法,還包括動(dòng)態(tài)圖形、表格、繪圖功能、調(diào)試器和資源查看器。文檔設(shè)計(jì)得非常適合輕松開發(fā),抽象了 GUI 編程的許多復(fù)雜性,使開發(fā)人員能夠?qū)W⒂跇?gòu)建他們的應(yīng)用程序可以兼容Python2與3,使用如下命令安裝
pip install dearpygui
以下是一個(gè)簡單的 PyGUI 程序示例,該程序創(chuàng)建一個(gè)帶有按鈕的窗口
import dearpygui.dearpygui as dpg
def on_button_click():
? ?print("Button clicked!")
with dpg.window(label="My Window"):
? ?dpg.add_button(label="Click me", callback=on_button_click)
dpg.start_dearpygui()
PySimpleGUI
PySimpleGUI 旨在使初學(xué)者和經(jīng)驗(yàn)豐富的程序員都可以使用 Python 進(jìn)行 GUI 開發(fā)。它提供了一個(gè)高級(jí)界面,簡化了 GUI 窗口和元素的創(chuàng)建。它巧妙地結(jié)合了TKinter、Remi、Qt和WxPython的優(yōu)點(diǎn),使可視元素的訪問變得輕而易舉。提供了各種可以輕松添加到布局中的 GUI 元素,包括按鈕、復(fù)選框、單選按鈕、輸入字段、滑塊等。這些元素可以用不同的樣式和屬性進(jìn)行定制。提供全面的文檔和示例程序集合,演示各種用例和功能,經(jīng)驗(yàn)豐富的開發(fā)人員可以深入研究PySimpleGUI的全部功能,支持Windows、macOS 和 Linux,使用如下命令安裝
pip install pysimplegui
下面是一個(gè)簡單的 PySimpleGUI 程序示例,該程序創(chuàng)建一個(gè)帶有按鈕的窗口
import PySimpleGUI as sg
layout = [[sg.Button('Click me')]]
window = sg.Window('My Window', layout)
while True:
? ?event, values = window.read()
? ?if event == sg.WINDOW_CLOSED:
? ? ? ?break
? ?elif event == 'Click me':
? ? ? ?print('Button clicked!')
window.close()
Kivy
Kivy是一個(gè)免費(fèi)且開源的Python框架,用于開發(fā)具有自然用戶界面(NUI)的多點(diǎn)觸控應(yīng)用程序(非常適合支持觸摸的設(shè)備)。通過其廣泛的工具庫,開發(fā)人員可以構(gòu)造出色的用戶界面。Kivy 提供快速高效的開發(fā)流程,提供了一套全面的工具和小部件,可以簡化 GUI 應(yīng)用程序的創(chuàng)建。 Kivy 文檔和社區(qū)資源提供了廣泛的指導(dǎo)、教程和示例,幫助開發(fā)者有效地學(xué)習(xí)和利用該框架??梢栽诙鄠€(gè)平臺(tái)上部署,無論是在iOS、Android、Windows、Mac OS、Raspberry Pi還是Linux上,Kivy都能發(fā)揮作用。使用如下命令安裝
pip install kivy
下面是一個(gè)簡單的 Kivy程序示例,該程序創(chuàng)建一個(gè)帶有按鈕的窗口
import kivy
from kivy.app import App
from kivy.uix.button import Button
class TestApp(App):
? ?def build(self):
? ? ? ?return Button(text='Click me!', on_press=self.on_button_click)
? ?def on_button_click(self, instance):
? ? ? ?print('Button clicked!')
if __name__ == '__main__':
? ?TestApp().run()
Pyside2
Pyside2,也被稱為Qt for Python,提供了廣泛的小部件和工具,允許開發(fā)人員創(chuàng)建可以在Windows、macOS、Linux等平臺(tái)上運(yùn)行的跨平臺(tái)應(yīng)用程序。支持Qt框架的各種功能,包括信號(hào)和槽、布局、樣式表等。Pyside2提供完善的視頻指南、示例、教程和API文檔并擁有龐大的開發(fā)人員社區(qū),易于找到資源和支持,使用如下命令安裝
pip install PySide2
以下是創(chuàng)建一個(gè)帶有按鈕窗口的示例
import sys
from PySide2.QtWidgets import QApplication, QMainWindow, QPushButton
class MainWindow(QMainWindow):
? ?def __init__(self):
? ? ? ?super().__init__()
? ? ? ?self.setWindowTitle("My App")
? ? ? ?button = QPushButton("Click me!")
? ? ? ?button.clicked.connect(self.on_button_click)
? ? ? ?self.setCentralWidget(button)
? ?def on_button_click(self):
? ? ? ?print("Button clicked!")
app = QApplication(sys.argv)
window = MainWindow()
window.show()
app.exec_()
Tkinter
Tkinter是Python的標(biāo)準(zhǔn)GUI庫,提供了創(chuàng)建GUI應(yīng)用程序的各種工具和組件,可以讓開發(fā)人員方便地創(chuàng)建圖形界面并與用戶進(jìn)行交互??梢允褂肨kinter創(chuàng)建各種GUI組件,如窗口、標(biāo)簽、按鈕、文本框等。在使用Tkinter開發(fā)GUI應(yīng)用程序時(shí),需要掌握一些基本的概念和技巧,如組件的布局、事件處理、屬性設(shè)置等。同時(shí),Tkinter還提供了許多標(biāo)準(zhǔn)的對(duì)話框、菜單和工具欄等組件,可以在應(yīng)用程序中方便地使用。需要注意的是,Tkinter并不是最強(qiáng)大、最靈活的GUI庫,但是它是Python標(biāo)準(zhǔn)庫的一部分,因此可以很方便地在各個(gè)平臺(tái)上使用,以下是創(chuàng)建一個(gè)帶有按鈕窗口的示例
import tkinter as tk
def on_button_click():
? ?print('Button clicked!')
root = tk.Tk()
root.title('My Window')
button = tk.Button(root, text='Click me!', command=on_button_click)
button.pack()
root.mainloop()
PyQt5
PyQt5是一個(gè)用于創(chuàng)建GUI應(yīng)用程序的Python庫,它是Qt庫的Python接口。可以在Mac OS X、Linux、Windows、Android和Raspberry Pi上創(chuàng)建應(yīng)用程序。PyQt5提供了許多內(nèi)置的組件和工具,如按鈕、文本框、標(biāo)簽、菜單和工具欄等,可以幫助開發(fā)人員更輕松地創(chuàng)建應(yīng)用程序。PyQt5還提供了一個(gè)易于使用的API,允許開發(fā)人員使用信號(hào)和槽機(jī)制等高級(jí)特性來處理用戶輸入和事件,使用如下命令安裝
pip install PyQt5
以下是創(chuàng)建一個(gè)帶有按鈕窗口的示例
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton
class MainWindow(QMainWindow):
? ?def __init__(self):
? ? ? ?super().__init__()
? ? ? ?self.setWindowTitle("My App")
? ? ? ?button = QPushButton("Click me!")
? ? ? ?button.clicked.connect(self.on_button_click)
? ? ? ?self.setCentralWidget(button)
? ?def on_button_click(self):
? ? ? ?print('Button clicked!')
app = QApplication(sys.argv)
window = MainWindow()
window.show()
app.exec_()
wxPython
wxPython是一個(gè)用于創(chuàng)建GUI應(yīng)用程序的Python庫。wxPython提供了一個(gè)易于使用的API,可以讓開發(fā)人員使用Python語言創(chuàng)建各種類型的GUI應(yīng)用程序。提供了許多內(nèi)置的組件和工具,如按鈕、文本框、標(biāo)簽、菜單和工具欄等,可以幫助開發(fā)人員更輕松地創(chuàng)建應(yīng)用程序。可以在Windows、Linux和Mac OS X等操作系統(tǒng)上運(yùn)行,使用如下命令安裝
pip install wxPython
以下是創(chuàng)建一個(gè)帶有按鈕窗口的示例
import wx
class MainWindow(wx.Frame):
? ?def __init__(self, parent, title):
? ? ? ?super(MainWindow, self).__init__(parent, title=title, size=(300, 200))
? ? ? ?panel = wx.Panel(self)
? ? ? ?button = wx.Button(panel, label="Click me!", pos=(100, 50))
? ? ? ?button.Bind(wx.EVT_BUTTON, self.on_button_click)
? ?def on_button_click(self, event):
? ? ? ?print('Button clicked!')
app = wx.App()
window = MainWindow(None, "My App")
window.Show()
app.MainLoop()
PyGame
why PyGame?除了是一個(gè)有用的GUI框架外,Pygame 是一個(gè)常用于游戲開發(fā)和多媒體應(yīng)用程序的 Python 庫,它提供了用 Python 創(chuàng)建游戲和豐富的多媒體程序的功能。構(gòu)建在 Simple DirectMedia Layer (SDL) 之上,允許訪問多媒體硬件組件,例如聲音、視頻、鼠標(biāo)、鍵盤和操縱桿,包含了廣泛的功能,如
允許創(chuàng)建和操作圖像、繪制形狀以及應(yīng)用轉(zhuǎn)換
可以處理鍵盤、鼠標(biāo)和操縱桿輸入來控制游戲
提供在游戲中播放聲音和音樂的功能
包含碰撞檢測函數(shù)來處理游戲?qū)ο笾g的碰撞
可以通過隨時(shí)間更新游戲?qū)ο蟮奈恢煤屯庥^來創(chuàng)建動(dòng)畫
可以將第三方物理引擎與Pygame集成
使用如下命令安裝
python -m pip install pygame
以下是一個(gè) Pygame 程序的簡單示例,它顯示一個(gè)窗口并處理基本的用戶輸入
import pygame
pygame.init()
# Set up the display
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("My Game")
running = True
while running:
? ?for event in pygame.event.get():
? ? ? ?if event.type == pygame.QUIT:
? ? ? ? ? ?running = False
? ?# Update game logic here
? ?# Clear the screen
? ?screen.fill((0, 0, 0))
? ?# Draw game objects here
? ?# Update the display
? ?pygame.display.flip()
pygame.quit()
以上就是本期的全部內(nèi)容,不要吝嗇你的點(diǎn)贊在看,我是啥都生,下次再見~