一、GUI 四大门派核心特性
|
框架 |
江湖地位 |
入门难度 |
开发效率 |
颜值潜力 |
杀招 |
|
Tkinter |
标准库,兼容性强 |
★☆☆☆☆ |
★★★★☆ |
★★☆☆☆ |
零依赖,快速原型 |
|
PyQt |
功能霸主,文档全 |
★★★☆☆ |
★★★★☆ |
★★★★★ |
Qt Designer可视化 |
|
PySide |
Qt官方亲儿子 |
★★★☆☆ |
★★★★☆ |
★★★★★ |
LGPL开源更自由 |
|
Kivy |
移动端跨界高手 |
★★★★☆ |
★★★☆☆ |
★★★★☆ |
多点触控与跨平台 |
二、门派招式实录(附代码)
1. Tkinter - 基础窗口与交互
import tkinter as tk
from tkinter import messagebox
def on_click():
messagebox.showinfo("武林密令", f"{entry.get()}大侠,点击成功!")
root = tk.Tk()
entry = tk.Entry(root, width=20)
entry.pack(pady=10)
tk.Button(root, text="出招", command=on_click).pack()
root.mainloop()
2. PyQt - 现代化窗口实战
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("Qt剑宗")
btn = QPushButton("释放内力", self)
btn.clicked.connect(lambda: print("真气已运行周天!"))
self.setCentralWidget(btn)
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
3. PySide - 信号槽深度应用
from PySide6.QtWidgets import QApplication, QSlider, QLabel
from PySide6.QtCore import Qt
app = QApplication([])
slider = QSlider(Qt.Horizontal)
label = QLabel("功力值:0")
slider.valueChanged.connect(lambda v: label.setText(f"功力值:{v}"))
slider.show()
label.show()
app.exec()
4. Kivy - 跨平台触控界面
from kivy.app import App
from kivy.uix.button import Button
class MyApp(App):
def build(self):
return Button(text='触摸发功',
on_press=lambda x: print("经脉已打通!"),
size_hint=(0.5, 0.2))
MyApp().run()
三、选型决策树
graph TD
A[需求类型?] --> B{轻量级小工具}
A --> C{专业桌面应用}
A --> D{移动/触控应用}
B --> E[首选Tkinter]
C --> F[PyQt/PySide]
D --> G[Kivy]
F --> H{需要商业授权?}
H --> I[是 --> 选PyQt]
H --> J[否 --> 选PySide]
避坑指南:
- Tkinter升级颜值需用
ttk主题引擎 - PyQt商用需购买授权,PySide6可免费用
- Kivy安卓打包用Buildozer,iOS用KivyMD
- 复杂界面推荐Qt Designer + PyUIC转代码
掌握各派核心招式,方能GUI江湖自在遨游。根据应用场景选型,小工具用Tkinter闪电开发,商业级桌面程序靠PyQt/PySide坐镇,跨平台触控则让Kivy大显身手——武林之巅,待君登临!
837

被折叠的 条评论
为什么被折叠?



