整体文章目录
一、 当前章节目录
二、Python的GUI开发选择
- Tkinter:简单实用,适用于小型图形界面应用程序的快速开发。
- wxPython:比较流行的GUI跨平台开发技术,适合快速开发大型应用程序。
- PyQT:一种开源的GUI库,组件丰富,能做出特别漂亮的界面,适合于大型应用程序开发。
2.1 认识Python内置的GUI库Tkinter
import tkinter
from tkinter import *
2.2 使用Tkinter进行开发
from tkinter import *
root = Tk()
word = Label(root, text="Hello, world!")
word.pack()
root.mainloop()
运行结果:
from tkinter import *
class App: # 自定义了一个App类
def __init__(self, master): # 定义__init__方法
frame = Frame(master) # 创建frame对象
frame.pack() # 调用pack方法
self.ok = Button(frame, text="OK",
command=self.ok)
self.ok.pack(side=LEFT)
def ok(self): # 定义hello方法
print("ok!")
root = Tk()
root.wm_title("OK") # 设置标题
root.wm_minsize(200, 200) # 设置窗口大小
app = App(root)
root.mainloop()
运行结果:
2.3 认识PyQT GUI库
2.4 使用PyQT GUI库进行开发
import sys # 导入sys模块
from PyQt5.QtWidgets import * # 导入QtWidgets模块
from PyQt5.QtGui import QIcon # 导入Qicon模块
from PyQt5.QtCore import QCoreApplication # 导入QcoreApplication模块
# 新建子窗体
class PushWindow(QWidget): # 创建PushWindow类
def __init__(self): # 创建__init__方法
super(PushWindow, self).__init__() # 调用父类的__init__方法
self.resize(400, 200) # 设置大小
class MainWindow(QMainWindow): # 创建MainWindow类
def __init__(self): # 创建__init__方法
super().__init__() # 调用父类的构造方法
self.resize(600, 400) # 设置主窗体大小
self.setWindowTitle('主窗体') # 设置窗体标题
self.initUI() # 调用initUI方法
self.show() # 调用show方法
def initUI(self): # 创建initUI方法
nbtn = QPushButton('弹出新窗体', self)# 定义“弹出新窗体”按钮
nbtn.clicked.connect(self.onclick) # 按钮单击事件
nbtn.resize(nbtn.sizeHint()) # 设置按钮大小
qbtn = QPushButton('退出', self) # 定义“退出”按钮
qbtn.setGeometry(102, 0, 115, 70) # 设置按钮的位置
qbtn.clicked.connect(QCoreApplication.instance().quit) # 按钮单击事件
qbtn.resize(qbtn.sizeHint()) # 设置按钮大小
def onclick(self): # 定义onclick方法
self.newWindow = PushWindow() # 创建newWindow对象
self.newWindow.show() # 调用show方法
if __name__ == '__main__':
app = QApplication(sys.argv) # 创建了一个QApplication对象app
mw = MainWindow() # 创建mw对象
sys.exit(app.exec_()) # 进入程序的主循环,遇到退出情况,终止程序
运行结果:
三、习题
习题:
- 说出目前Python 3.x常用的GUI库。
- 使用Python内置的Tkinter开发一个简单的UI,设计一个只有一个OK按钮的界面。
答案:
(1) Tkinter:简单实用,适用于小型图形界面应用程序的快速开发
(2) wxPython:比较流行的GUI跨平台开发技术,适合快速开发大型应用程序
(3) PyQT:一种开源的GUI库,组件丰富,能做出特别漂亮的界面,适合于大型应用程序开发。
2. 代码如下。
from tkinter import *
class App: # 自定义了一个App类
def __init__(self, master): # 定义__init__方法
frame = Frame(master) # 创建frame对象
frame.pack() # 调用pack方法
self.ok = Button(frame, text="OK",
command=self.ok)
self.ok.pack(side=LEFT)
def ok(self): # 定义hello方法
print("ok!")
root = Tk()
root.wm_title("OK") # 设置标题
root.wm_minsize(200, 200) # 设置窗口大小
app = App(root)
root.mainloop()