一.python之Tkinter库学习: Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。 由于 Tkinter 是内置到 python 的安装包中、只要安装好Tkinter 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 还是能应付自如。# 安装
sudo pip3 install tkinter
# 导入
import tkinter 窗口的几个常用属性 Tkinter中控件的使用: Button 按钮; Canvas 绘图形组件,可以在其中绘制图形; Checkbutton 复选框; Entry 文本框(单行); Text 文本框(多行); Frame 框架,将几个组件组成一组 Label 标签,可以显示文字或图片; Listbox 列表框; Menu 菜单; Menubutton 它的功能完全可以使用Menu替代; Message 与Label组件类似,但是可以根据自身大小将文本换行; Radiobutton 单选框; Scale 滑块;允许通过滑块来设置一数字值 Scrollbar 滚动条;配合使用canvas, entry, listbox, and text窗口部件的标准滚动条; Toplevel 用来创建子窗口窗口组件。(在Tkinter中窗口部件类没有分级;所有的窗口部件类在树中都是兄弟。) tkinter.Entry中的控制参数 background(bg) 文本框背景色; foreground(fg) 前景色;·1 selectbackground 选定文本背景色; selectforeground 选定文本前景色; borderwidth(bd) 文本框边框宽度; font 字体; show 文本框显示的字符,若为*,表示文本框为密码框; state 状态; width 文本框宽度 textvariable 可变文本,与StringVar(StringVar是Tk库内部定义的字符串变量类型 )等配合着用[Python] 纯文本查看 复制代码 # tkinter.Entry
import tkinter as tk
root = tk.Tk() # 初始化Tk()
root.title("entry-test") # 设置窗口标题
root.geometry("300x200") # 设置窗口大小 注意:是x 不是*
root.resizable(width=True, height=False) # 设置窗口是否可以变化长/宽,False不可变,True可变,默认为True
var = tk.StringVar()
e = tk.Entry(root, textvariable=var)
var.set("entry") # 设置文本框中的值
e.pack(side=tk.BOTTOM) # 这里的side可以赋值为LEFT--左 TOP--上 BOTTOM--下 RIGHT--右
root.mainloop() # 显示窗口()
标签tkinter.Label组件控制参数 Anchor 标签中文本的位置; background(bg) 背景色; foreground(fg) 前景色; borderwidth(bd) 边框宽度; width 标签宽度; height 标签高度; bitmap 标签中的位图; font 字体; image 标签中的图片; justify 多行文本的对齐方式; text 标签中的文本,可以使用'\n'表示换行 textvariable 显示文本自动更新,与StringVar等配合着用
[Python] 纯文本查看 复制代码 # tkinter.Label
import tkinter as tk
root = tk.Tk() # 初始化Tk()
root.title("label-test") # 设置窗口标题
root.geometry("200x300") # 设置窗口大小 注意:是x 不是*
root.resizable(width=True, height=False) # 设置窗口是否可以变化长/宽,False不可变,True可变,默认为True
l = tk.Label(root, text="label", bg="blue", font=("Arial", 12), width=8, height=3)
l.pack(side=tk.BOTTOM) # 这里的side可以赋值为LEFT--左 TOP--上 BOTTOM--下 RIGHT--右
root.mainloop()
Python Tkinter Grid布局管理器详解Grid(网格)布局管理器会将控件放置到一个二维的表格里。主控件被分割成一系列的行和列,表格中的每个单元(cell)都可以放置一个控件。 注意:不要试图在一个主窗口中混合使用pack和grid[Python] 纯文本查看 复制代码 from tkinter import *
tk=Tk()
#标签控件,显示文本和位图,展示在第一行
Label(tk,text="First").grid(row=0,column=1)
Label(tk,text="Second").grid(row=1,column=1)#第二行
#主事件循环
mainloop()
Python:GUI之tkinter事件绑定bind的用法:控件.bind(event, handler),其中event是tkinter已经定义好的的事件,handler是处理器,可以是一个处理函数,如果相关事件发生, handler 函数会被触发, 事件对象 event 会传递给 handler 函数 常见event有: 鼠标单击事件:鼠标左键点击为 <Button-1>, 鼠标中键点击为 <Button-2>, 鼠标右键点击为 <Button-3>, 向上滚动滑轮为 <Button-4>, 向下滚动滑轮为 <Button-5>. 鼠标双击事件.:鼠标左键点击为 <Double-Button-1>, 鼠标中键点击为 <Double-Button-2>, 鼠标右键点击为 <Double-Button-3>. 件:鼠标左键点击为 <ButtonRelease-1>, 鼠标中键点击为 <ButtonRelease-2>, 鼠标右键点击为 <ButtonRelease-3>. 鼠标相对当前控件的位置会被存储在 event 对象中的 x 和 y 字段中传递给回调函数. 鼠标移入控件事件:<Enter> 获得焦点事件:<FocusIn> 鼠标移出控件事件: <Leave> 失去焦点事件:<FocusOut> 鼠标按下移动事件:鼠标左键点击为 <B1-Motion>, 鼠标中键点击为 <B2-Motion>, 鼠标右键点击为 <B3-Motion>. 鼠标相对当前控件的位置会被存储在 event 对象中的 x 和 y 字段中传递给回调函数. 键盘按下事件:<Key>,event中的keysym ,keycode,char都可以获取按下的键【其他想要获取值的也可以先看看event中有什么】 键位绑定事件:<Return>回车键,<BackSpace>,<Escape>,<Left>,<Up>,<Right>,<Down>……. 控件大小改变事件:<Configure>,新的控件大小会存储在 event 对象中的 width 和 height 属性传递. 有些平台上该事件也可能代表控件位置改变.
二.python之requests库学习:
requests是python实现的简单易用的HTTP库,使用起来比urllib简洁很多。
[Python] 纯文本查看 复制代码 # 安装
pip3 install requests
各种请求方式
[Python] 纯文本查看 复制代码 import requests
requests.get('http://httpbin.org/get')
requests.post('http://httpbin.org/post')
requests.put('http://httpbin.org/put')
requests.delete('http://httpbin.org/delete')
requests.head('http://httpbin.org/get')
requests.options('http://httpbin.org/get')
返回信息的打印
[Python] 纯文本查看 复制代码 import requests
response = requests.get('http://www.baidu.com')
print(response.status_code) # 打印状态码
print(response.url) # 打印请求url
print(response.headers) # 打印头信息
print(response.cookies) # 打印cookie信息
print(response.text) #以文本形式打印网页源码
print(response.content) #以字节流形式打印
在这个里面我们需要调用有道翻译的翻译接口,分析接口类型,我们需要用的是post请求:
[Python] 纯文本查看 复制代码 url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null"
headers = {
"Host": " fanyi.youdao.com",
'Connection': 'keep - alive',
'Accept': ' application / json, text / javascript, * / *; q = 0.01',
'Origin': ' http: // fanyi.youdao.com',
'X - Requested - With': ' XMLHttpRequest',
'User - Agent': ' Mozilla / 5.0(WindowsNT10.0;WOW64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 55.0.2883.87Safari / 537.36',
'Content - Type': ' application / x - www - form - urlencoded;charset = UTF - 8',
'Referer': ' http: // fanyi.youdao.com /',
'Accept - Encoding': 'gzip, deflate',
'Accept - Language': 'zh - CN, zh;q = 0.8'
}
formData = {
"type": "AUTO",
"i":word,
"from":"AUTO",
'to':'AUTO',
"smartresult":"dict",
"client":"fanyideskweb",
'salt':'1525516901332',
'sign':'a2616a82b1e43da512ed61c8dc09ec2c',
"doctype":"json",
"version":"2.1",
"keyfrom":"fanyi.web",
"action":"FY_BY_REALTIME",
"typoResult":"true"
}
response = requests.post(url=url, headers=headers, data=formData)
# print(response.text)
data = json.loads(response.text)['translateResult'][0][0]['tgt']
项目展示图:
|