美文网首页
2020-05-06

2020-05-06

作者: tensor_id | 来源:发表于2020-05-06 19:41 被阅读0次

python GUI(tkinter)

事件起因:由于下载了一个10000常用单词,需要背单词,但是word格式背单词看着很不舒服,所以就写了一个小代码,背单词用,这个版本是0.1版的,也就是啥也没有,基本功能也不全的,未来如果脑袋不抽的话也不会有后续了。。。。。。

之后,踩了一个坑,需要mark一下:

第一个坑就是关于LabelFrame,这个东西是真的坑,不要把它当成是Label,要当成Frame。

不多bibi,上代码。

'''
import numpy as np
from tkinter import *
from tkinter import ttk
import docx
import tkinter.messagebox
import docx

这里面还有东西没做:

  1. log中如果修改了那个单词是知道还是不知道,需要进行index的删除工作,know和unknow的单词转存工作没有做。
  2. 就是现在是必须先点击start之后才可以继续下去,这个地方是要进行一下修改的。
  3. 美观,放大之后还是聚成一团,这些问题都要自己去进行设计。
  4. 现在还没有示例数据和发音,这个东西也是需要做的,但是我就bu做了。

class APP:

def __init__(self, master):

    self.IndexVar = IntVar()
    self.IndexVar.set(0)
    self.TextVar = IntVar()
    self.TextVar.set(0)
    self.RadVar = IntVar()
    self.RadVar.set(99)
    self.Num = IntVar()
    self.Num.set(30)

    self.doc = ["Hello Word!"]
    self.know_list = []
    self.unknow_list = []

    self.label_frame1 = ttk.LabelFrame(master, text="设置背单词数量")
    self.label_frame1.pack()
    self.Entry = ttk.Entry(self.label_frame1, width=12, textvariable=self.Num).pack()
    self.En_button = ttk.Button(self.label_frame1, text='start', command=self.start).pack()

    self.StrVar = StringVar()
    self.StrVar.set(self.doc[self.TextVar.get()])
    self.label_frame = ttk.LabelFrame(master, text="...学习单词中...", labelanchor='n')
    self.label_frame.pack()

    self.label = ttk.Label(self.label_frame, textvariable=self.StrVar)
    self.label.pack(padx=10, pady=10)

    self.up = ttk.Button(self.label_frame, text='previous', command=self.up_word).pack(side=LEFT)
    self.next = ttk.Button(self.label_frame, text='next', command=self.next_word).pack(side=RIGHT)
    self.ctrl_list = ["know", "unknow"]

    for i in range(len(self.ctrl_list)):
        self.Rad = ttk.Radiobutton(self.label_frame, text=self.ctrl_list[i], variable=self.RadVar, value=i, command=self.word_log).pack()

def start(self):

    path = 'C:/Users/64894/Desktop/word.docx'
    doc = docx.Document(path)
    index_list = np.random.randint(0, len(doc.paragraphs), self.Num.get())

    word_list = []
    for i in index_list:
        word_list.append(doc.paragraphs[i].text)
    self.doc = word_list
    self.StrVar.set(self.doc[self.TextVar.get()])

def up_word(self):

    RadVar = self.RadVar.get()
    index = self.IndexVar.get()

    if RadVar == 0:
        self.know(index)
    else:
        self.unknow(index)

    if index == 0:
        tkinter.messagebox.showinfo(message="sb,这已经是第一个了")
    else:
        self.IndexVar.set(index - 1)

    self.TextVar.set(self.IndexVar.get())
    self.StrVar.set(self.doc[self.TextVar.get()])
    self.RadVar.set(99)

def next_word(self):

    RadVar = self.RadVar.get()
    index = self.IndexVar.get()

    if RadVar == 0:
        self.know(index)
    else:
        self.unknow(index)

    if index >= self.Num.get() - 1:
        tkinter.messagebox.showinfo(message="sb,这是最后一个了。")
    else:
        self.IndexVar.set(index + 1)

    self.TextVar.set(self.IndexVar.get())
    self.StrVar.set(self.doc[self.TextVar.get()])
    self.RadVar.set(99)

def word_log(self):

    RadVar = self.RadVar.get()
    index = self.IndexVar.get()

    if RadVar == 0:
        self.know_list.append(index)
    else:
        self.unknow_list.append(index)

def know(self, index):
    print("I know")

def unknow(self, index):
    print("I Do unknow")

if name == 'main':

root = Tk()
root.title("0.1版本")
app = APP(master=root)
root.mainloop()

'''

相关文章

  • 2020-05-07

    2020-05-06 2020-05-06 成长日志第321天 家名:温暖有爱之家 家规:真诚待人不自欺,学会看见...

  • MassMotion sdk的使用

    2020-05-06 直接用VS 以MassMotion sdk 官方examples为例(sdk下载好后在安装文...

  • 【每日分享】2020-05-06 关于习惯(4)之方法1

    【每日分享】2020-05-06 关于习惯(4)之方法1 之前只给看鸡汤,没配勺子(工具,方法)今天来点干货,可以...

  • 【D134】拆解优质文案案例——写作营共读打卡第101天《爆款文

    2020-05-06,周三,晴 今天阅读《爆款文案》。 Day101-《拆解优质文案案例》 ——写作营第101天共...

  • 2020-05-06

    《杀手职责》 第一章-吐槽我的语言 晓道士接稿 字数 339 · 阅读 0 2020-05-06 22:45 我...

  • Unity2019导出地形terrain为obj

    2020-05-06我的unity版本是2019用这个方法可以导出普通物体甚至人物模型,但无法正常导出terrai...

  • 断舍离NO.171

    2020-05-06 星期三 晴 断舍离NO.171 人生是一个不断做减法的过程,当你不会舍弃一些东西...

  • 模拟/收到的金句

    练车第十三天 2020-05-06 指导员语录: ️好事多磨。 ️欲速则不达。 【1.考试车练习】 1/2的侧方位...

  • 换个城市生活

    2020-05-06 最近因着工作的不顺心,产生了离职的想法,老实说,离职这个想法是去年就已经在心里产生了。至于原...

  • 几种最常见的网站盈利模式分析

    原创 甜力怕 2020-05-06 盈利化似乎是网站必须要经历的一条路,很多网站的建设本身就是奔着盈利而去的,...

网友评论

      本文标题:2020-05-06

      本文链接:https://www.haomeiwen.com/subject/hplgghtx.html