A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

一.python之Tkinter库学习:
Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。
由于 Tkinter 是内置到 python 的安装包中、只要安装好Tkinter 之后就能 import Tkinter 库、而且 IDLE 也是用 Tkinter 编写而成、对于简单的图形界面 Tkinter 还是能应付自如。# 安装
sudo pip3 install tkinter
# 导入
import tkinter
窗口的几个常用属性
  • title: 设置窗口标题
  • geometry: 设置窗口大小
  • resizable():设置窗口是否可以变化长 宽;

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事件绑定
  • command
  • bind
  • protocol

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']


项目展示图:








snipaste20180821_155724.jpg (17.14 KB, 下载次数: 12)

snipaste20180821_155724.jpg

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马