18910140161

wxpython简单记录生词GUI程序

顺晟科技

2021-06-16 10:47:43

285

不使用数据库,实现一个简单的记生词软件,基本功能包括,添加新的生词及其中文含义,浏览已经记录的单词,随机选择部分单词进行复习。可考虑其它拓展的功能。

这里使用简介的基本操作,以及类与函数的调用方式。

计算机编程语言

随机导入

导入women's extra large size 女式特大号

mydic={}

num=[]

taged=[]

类信息面板(wx .框架):

def __init__(自身,父,id):

wx.Frame.__init__(自身,父,id,'词典,pos=(0,0),size=(450,400))

panel=wx .面板(自,-1)

rev=wx .StaticText(面板,-1,"英文:',pos=(3,3))

rev=wx .StaticText(面板,-1,"中文:',pos=(170,3))

rev=wx .StaticText(panel,-1,' English:',pos=(50,50))

rev=wx .StaticText(panel,-1,' Chinese:',pos=(250,50))

rev=wx .StaticText(面板,-1,"记录单词总数:',pos=(50,29))

SetForegroundColour(黑色)版本

rev . SetBackgroundColoUr(')#文字背景颜色,不输入为透明

self.temp_Eng=wx .TextCtrl(面板,-1 ' ',pos=(40,0),size=(100,-1))

self.temp_ZH=wx .TextCtrl(panel,-1 ' ',pos=(207,0),size=(100,-1))

button=wx .按钮(面板,wx .ID_ANY,pos=(320,0),size=(80,26),label='增加单词)

按钮装订(wx .EVT_BUTTON,self.get_word)

button2=wx .按钮(面板,wx .ID_ANY,pos=(0,200),size=(430,30),label='查看所有单词)

按钮2。装订(wx .EVT_BUTTON,self.scan_word)

button3=wx .按钮(面板,wx .ID_ANY,pos=(0,150),size=(140,30),label='随机学习)

按钮3。装订(wx .EVT_BUTTON,self.review_word)

button4=wx .按钮(面板,wx .ID_ANY,pos=(145,150),size=(140,30),label='标记)

按钮4。装订(wx .EVT_BUTTON,self.tag_button)

button5=wx .按钮(面板,wx .ID_ANY,pos=(290,150),size=(140,30),label='随机查看标记单词)

按钮5。装订(wx .EVT_BUTTON,self.get_taged_word)

self.text=wx .TextCtrl(面板,-1 ' ',pos=(3,70),size=(170,50))

self.text2=wx .TextCtrl(面板,-1 ' ',pos=(200,70),size=(170,50))

self.text3=wx .TextCtrl(panel,-1 " ",pos=(0,230),size=(430,110),style=wx .TE_MULTILINE)

self.total_word=wx .TextCtrl(面板,-1 ' ',pos=(140,27),size=(40,25))

self.ran=无

self.load_file(self)

self.get_total_word(self)

def get_total_word(self,event):

全局编号

self.total_word .附录文本(字符串(len(num)))

def write_word2file(self,Eng,ZH):

f=打开('。\dic.txt ',' a ')

写(英:' ZH '\n ')

f.close()

def get_word(self,event):

全局编号

if self.temp_Eng .GetValue()!=无或自我温度_ZH .GetValue()!=None:

自我。write _ word 2文件(self。temp _ Eng .GetValue(),self.temp_ZH .GetValue())

self.temp_Eng .清除()

自我温度_ZH .清除()

self.total_word .清除()

self.load_file(self)

self.total_word .附录文本(字符串(len(num)))

def load_file(self,event):

全球mydic

全局编号

f=打开(' E:\\dic.txt ',' r ')

对于f.readlines()中的行:

如果第行和第[:len(线路)-1]行中的":"不在num:中

mydic[line[: line。index(' : ')]=line[line。索引(' : ')1: len(line)-1]

num.append(第[:len(线路)-1]行)

def scan_word(self,event):

全局编号

self.load_file(事件)

self.text.Clear()

for _ in范围(len(num)):

自我。文本3。appendtext(num[_]' \ n ')

def review_word(self,event):

全局编号

self.text.Clear()

self.text2.Clear()

self.ran=random.randint(0,len(num)-1)

而self.ran==random.randint(0,len(num)-1):

self.ran=random.randint(0,len(num) - 1)

自我。文字。appendtext(num[self。ran][: num[self。跑]).索引(' :')])

自我。文本2。appendtext(num[self。ran[num[self .跑了.索引(' :') 1:)

def tag_button(self,event):

如果赛尔夫跑了!=None:

self.tag_word(self.ran)

def tag_word(self,event):

全局编号

全球标记

如果num[self.ran]不在taged:中

taged.append(num[self.ran])

打印(数量)

def get_taged_word(self,event):

全球标记

self.text.Clear()

self.text2.Clear()

_=random.randint(0,len(taged)-1)

while _==random.randint(0,len(taged)-1):

_=random.randint(0,len(taged) - 1)

自我。文字。append text(taged[_][: taged[_]).索引(' :')])

自我。文本2。appendtext(taged[_][taged[_]).索引(' :') 1:)

类MainApp(wx .App):

def OnInit(self):

self.frame1=信息面板(无,-1)

self.frame1.Center()

自框架1 .显示(真)

自我SetTopWindow(self.frame1)

返回真

if __name__=='__main__':

app=MainApp(0)

app .MainLoop()

2

3

5

6

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

随机导入

导入women's extra large size 女式特大号

mydic={}

num=[]

taged=[]

类信息面板(wx .框架):

def __init__(自身,父,id):

wx.Frame.__init__(自身,父,id,'词典,pos=(0,0),size=(450,400))

panel=wx .面板(自,-1)

rev=wx .StaticText(面板,-1,"英文:',pos=(3,3))

rev=wx .StaticText(面板,-1,"中文:',pos=(170,3))

rev=wx .StaticText(panel,-1,' English:',pos=(50,50))

rev=wx .StaticText(panel,-1,' Chinese:',pos=(250,50))

rev=wx .StaticText(面板,-1,"记录单词总数:',pos=(50,29))

SetForegroundColour(黑色)版本

rev . SetBackgroundColoUr(')#文字背景颜色,不输入为透明

self.temp_Eng=wx .TextCtrl(面板,-1 ' ',pos=(40,0),size=(100,-1))

self.temp_ZH=wx .TextCtrl(panel,-1 ' ',pos=(207,0),size=(100,-1))

button=wx .按钮(面板,wx .ID_ANY,pos=(320,0),size=(80,26),label='增加单词)

按钮装订(wx .EVT_BUTTON,self.get_word)

button2=wx .按钮(面板,wx .ID_ANY,pos=(0,200),size=(430,30),label='查看所有单词)

按钮2。装订(wx .EVT_BUTTON,self.scan_word)

button3=wx .按钮(面板,wx .ID_ANY,pos=(0,150),size=(140,30),label='随机学习)

按钮3。装订(wx .EVT_BUTTON,self.review_word)

button4=wx .按钮(面板,wx .ID_ANY,pos=(145,150),size=(140,30),label='标记)

按钮4。装订(wx .EVT_BUTTON,self.tag_button)

button5=wx .按钮(面板,wx .ID_ANY,pos=(290,150),size=(140,30),label='随机查看标记单词)

按钮5。装订(wx .EVT_BUTTON,self.get_taged_word)

self.text=wx .TextCtrl(面板,-1 ' ',pos=(3,70),size=(170,50))

self.text2=wx .TextCtrl(面板,-1 ' ',pos=(200,70),size=(170,50))

self.text3=wx .TextCtrl(panel,-1 " ",pos=(0,230),size=(430,110),style=wx .TE_MULTILINE)

self.total_word=wx .TextCtrl(面板,-1 ' ',pos=(140,27),size=(40,25))

self.ran=无

self.load_file(self)

self.get_total_word(self)

def get_total_word(self,event):

全局编号

self.total_word .附录文本(字符串(len(num)))

def write_word2file(self,Eng,ZH):

f=打开('。\dic.txt ',' a ')

写(英:' ZH '\n ')

f.close()

def get_word(self,event):

全局编号

if self.temp_Eng .GetValue()!=无或自我温度_ZH .GetValue()!=None:

自我。write _ word 2文件(self。temp _ Eng .GetValue(),self.temp_ZH .GetValue())

self.temp_Eng .清除()

自我温度_ZH .清除()

self.total_word .清除()

self.load_file(self)

self.total_word .附录文本(字符串(len(num)))

def load_file(self,event):

全球mydic

全局编号

f=打开(' E:\\dic.txt ',' r ')

对于f.readlines()中的行:

如果第行和第[:len(线路)-1]行中的":"不在num:中

mydic[line[: line。index(' : ')]=line[line。索引(' : ')1: len(line)-1]

num.append(第[:len(线路)-1]行)

def scan_word(self,event):

全局编号

self.load_file(事件)

self.text.Clear()

for _ in范围(len(num)):

自我。文本3。appendtext(num[_]' \ n ')

def review_word(self,event):

全局编号

self.text.Clear()

self.text2.Clear()

self.ran=random.randint(0,len(num)-1)

而self.ran==random.randint(0,len(num)-1):

self.ran=random.randint(0,len(num) - 1)

自我。文字。appendtext(num[self。ran][: num[self。跑]).索引(' :')])

自我。文本2。appendtext(num[self。ran[num[self .跑了.索引(' :') 1:)

def tag_button(self,event):

如果赛尔夫跑了!=None:

self.tag_word(self.ran)

def tag_word(self,event):

全局编号

全球标记

如果num[self.ran]不在taged:中

taged.append(num[self.ran])

打印(数量)

def get_taged_word(self,event):

全球标记

self.text.Clear()

self.text2.Clear()

_=random.randint(0,len(taged)-1)

while _==random.randint(0,len(taged)-1):

_=random.randint(0,len(taged) - 1)

自我。文字。append text(taged[_][: taged[_]).索引(' :')])

自我。文本2。appendtext(taged[_][taged[_]).索引(' :') 1:)

类MainApp(wx .App):

def OnInit(self):

self.frame1=信息面板(无,-1)

self.frame1.Center()

自框架1 .显示(真)

自我SetTopWindow(self.frame1)

返回真

if __name__=='__main__':

app=MainApp(0)

app .MainLoop()

相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航