def CallMySql2(): conn = pymysql.connect(host='localhost', port=3306, user='******', passwd='244466666', db='lsj', charset='utf8') #改为自己的数据库密码 cur = conn.cursor(cursor=pymysql.cursors.DictCursor) sql = 'select * from poetry WHERE id = {}'.format(random.randint(1,449)) # sql = 'select * from poetry WHERE id = {}'.format(268) cur.execute(sql) poetry = cur.fetchall() poetry = poetry[0] poetry = {i:poetry[i] for i in poetry if poetry[i] != 'NULL'} poetry_len = 0 for i in range(10): sentence = 'sentense_' + str(i + 1) if sentence in poetry: poetry_len += 1 while 1: key = random.randint(1,poetry_len) if 'sentense_' + str(key) in poetry and 'yiwen_' + str(key) in poetry: break # return key_word,random_poetry['name'],sentence poetry['yiwen_'+str(key)] = langconv.Converter('zh-hant').convert(poetry['yiwen_'+str(key)]) poetry['name'] = langconv.Converter('zh-hant').convert(poetry['name']) poetry['sentense_'+str(key)] = langconv.Converter('zh-hant').convert(poetry['sentense_'+str(key)]) return poetry['yiwen_'+str(key)],poetry['name'],poetry['sentense_'+str(key)]
def doconvert(self, target='SimpleChinese'): '''too slow ,discard''' if target == 'SimpleChinese': self.result = langconv.Converter('zh-hans').convert(self.result) elif target == 'TraditionChinese': self.result = langconv.Converter('zh-hant').convert(self.result) else: pass
def selection(self): '''模式选择界面''' saying_poet = SayPoet() clicking_poet = ClickPoet() you_say_i_guess = YouSayIGuess() global is_running, mode_select_interface if is_running: mode_select_interface = tkinter.Tk() mode_select_interface.title( langconv.Converter('zh-hant').convert("游戏模式选择")) mode_select_interface.geometry("400x400+500+150") img = Image.open("./image/背景3.jpg") photo = ImageTk.PhotoImage(img) bg_photo = tkinter.Canvas(mode_select_interface, width=400, height=400) bg_photo.create_image(350, 163, image=photo) bg_photo.pack() mode1 = tkinter.Button( mode_select_interface, text=langconv.Converter('zh-hant').convert("出口成诗"), font=('楷体', 18), bg='skyblue', activebackground='limegreen', command=saying_poet.run) mode1.place(relwidth=0.3, relheight=0.1, relx=0.35, rely=0.15) mode2 = tkinter.Button( mode_select_interface, text=langconv.Converter('zh-hant').convert("点字成诗"), font=('楷体', 18), bg='skyblue', activebackground='limegreen', command=clicking_poet.run) mode2.place(relwidth=0.3, relheight=0.1, relx=0.35, rely=0.35) mode3 = tkinter.Button( mode_select_interface, text=langconv.Converter('zh-hant').convert("你说我猜"), font=('楷体', 18), bg='skyblue', activebackground='limegreen', command=you_say_i_guess.run) mode3.place(relwidth=0.3, relheight=0.1, relx=0.35, rely=0.55) exit0 = tkinter.Button( mode_select_interface, text=langconv.Converter('zh-hant').convert("退出游戏"), font=('楷体', 18), bg='skyblue', activebackground='limegreen', command=self.exit_mode_select) exit0.place(relwidth=0.3, relheight=0.1, relx=0.35, rely=0.75) mode_select_interface.protocol("WM_DELETE_WINDOW", self.exit_mode_select) mode_select_interface.mainloop()
def endElement(self, tag): if (self.tag == None): self.content = '' self.tag = None return if (self.tag == 'title' and re.search(r':', self.content)): self.content = '' self.tag = None return self.content = langconv.Converter('zh-hans').convert(self.content) if (self.tag == 'title'): self.title_flag = True self.content = self.content.lstrip().rstrip() self.title = self.content self.count += 1 self.fout.write(self.content + '\n') if (self.count % 1000 == 0): print(self.count) try: self.cursor.execute("INSERT INTO main (title) VALUES (%s) ", (self.content)) except pymysql.err.InternalError as e: return except pymysql.err.DataError as e: return self.tag = None
def cht_to_chs(line): """ 转换繁体到简体 """ line = conv.Converter('zh-hans').convert(line) line.encode('utf-8') return line
def test_get_sentence(self): '''get_sentence的测试函数''' self.poet_game.get_sentence() self.assertEqual( langconv.Converter('zh-hans').convert('寥落古行宮'), self.poet_game.right_answer[len(self.poet_game.right_answer) - 1], '不匹配')
def get_disturb(self, number, len_question): '''获得对诗句进行干扰的汉字 #随机汉字 i = 0 while i < len_disturb: head = random.randint(0xb0, 0xf7) body = random.randint(0xa1, 0xfe) val = f'{head:x} {body:x}' word = bytes.fromhex(val).decode('gb2312', errors='ignore') #或者用decode('gbk') self.questions[number].append(word) i += 1 ''' len_disturb = 12 - len_question while 1: random_poet = random.randint(0, len(self.all_poet) - 1) if random_poet not in self.poet_number: sentence_amount = len(self.all_poet[random_poet]['paragraphs']) if sentence_amount != 0: random_sentence = random.randint(0, sentence_amount - 1) sentences = re.findall(r'[\u4E00-\u9FA5]+', self.all_poet[random_poet]['paragraphs'][random_sentence]) if len(sentences) > 0: i = 0 j = 0 while len_disturb != 0: if i >= len(sentences[0]) or j == 4: break if sentences[0][i] not in self.questions[number]: word = langconv.Converter('zh-hant').convert(sentences[0][i]) self.questions[number].append(word) len_disturb -= 1 j += 1 i += 1 if len_disturb == 0: break
def parse(self, response): filename = "data/" + urllib.parse.unquote( response.url.split("=")[-1]) + '.html' with open(filename, 'w') as f: text = response.body.decode('utf-8') print(text) f.write(langconv.Converter('zh-hans').convert(text)) '''
def get_links(self, tt): try: lst = wikipedia.page(title=tt).links return [langconv.Converter('zh-hans').convert(w) for w in lst] except wikipedia.exceptions.PageError as e: return [] except wikipedia.exceptions.DisambiguationError as e: return []
def Traditional2Simplified(sentence): """ 将sentence中的繁体字转为简体字 :param sentence: :return:返回转化后的简体 """ sentence = langconv.Converter('zh-hans').convert(sentence) return sentence
def Traditional2Simplified(sentence): ''' 将sentence中的繁体字转为简体字 :param sentence: 待转换的句子 :return: 将句子中繁体字转换为简体字之后的句子 ''' sentence = langconv.Converter('zh-hans').convert(sentence) return sentence
def traditional2simplified(self, text): '''将sentence中的繁体字转为简体字 param: text return: 繁体字转换为简体字之后的文本 ''' if text == "": return text text = langconv.Converter('zh-hans').convert(text) return text
def get_time(self): end_time = time.time() rest_time = self.time_limit - int(end_time - self.start_time) self.var.set( langconv.Converter('zh-hant').convert('剩余时间:' + str(rest_time) + '秒')) if rest_time == 0: self.time_out = 1 self.guess_interface.destroy() else: self.guess_interface.after(1000, self.get_time)
def ChangeFileEndcoding(filepath): if __addon__.getSetting("transUTF8") == "true" and os.path.splitext( filepath)[1] in SUBTYPE_EXT: data = open(filepath, 'rb').read() enc = chardet.detect(data)['encoding'] if enc: data = data.decode(enc, 'ignore') # translate to Simplified if __addon__.getSetting("transJianFan") == "1": data = langconv.Converter('zh-hans').convert(data) # translate to Traditional elif __addon__.getSetting("transJianFan") == "2": data = langconv.Converter('zh-hant').convert(data) data = data.encode('utf-8', 'ignore') try: local_file_handle = open(filepath, "wb") local_file_handle.write(data) local_file_handle.close() except: log(sys._getframe().f_code.co_name, "Failed to save subtitles to '%s'" % (filepath))
def submit_response(self): '''提交回答并处理''' number = 0 for i in range(self.say_poet.question_amount): if self.answering_state[i] == 1: number = i answers = self.answer.get() answer_right = self.say_poet.verification(number, answers) if answer_right: self.answering_state[number] = 2 self.right_amount += 1 messagebox.showinfo( message=langconv.Converter('zh-hant').convert("回答正确!")) for i in range(self.say_poet.question_amount): if self.answering_state[i] == 0: self.answering_state[i] = 1 break else: messagebox.showinfo( message=langconv.Converter('zh-hant').convert("回答错误!")) self.say_poet_interface.destroy()
def _tradition_2_simple(sent): """ Convert Traditional Chinese to Simplified Chinese """ # Please download langconv.py and zh_wiki.py first # langconv.py and zh_wiki.py are used for converting between languages try: import langconv except ImportError as e: error = "Please download langconv.py and zh_wiki.py at " error += "https://github.com/skydark/nstools/tree/master/zhtools." print(str(e) + ': ' + error) sys.exit() return langconv.Converter('zh-hans').convert(sent)
def wiki_analysis(self): self.nodes = [] self.links = [] for w in self.wlist: print w try: text = wikipedia.page(w).content text = langconv.Converter('zh-hans').convert(text) except wikipedia.exceptions.PageError, e: self.nodes.append({'id': 'w', 'wiki': None}) continue except wikipedia.exceptions.DisambiguationError: self.nodes.append({'id': 'w', 'wiki': 'Too many meaning'}) continue
def parse(self, response): #print(response.url) search = urllib.parse.unquote(response.url.split("=")[-1]) text = response.body.decode('utf-8') #print(text) res = re.findall(r'#REDIRECT\[\[(\S*)\]\]', text) API_URL = "https://zh.wikipedia.org/w/api.php?action=query&format=xml&prop=revisions&rvprop=content&titles=%s" if (len(res) != 0): print("Redirected to ", res[0]) return scrapy.Request(API_URL % res[0], callback=self.parse) item = WikiScrapyItem() item['search'] = search item['text'] = langconv.Converter('zh-hans').convert(text) with open('data/ans.txt', 'a') as f: sss = json.dumps( { 'search': search, 'text': langconv.Converter('zh-hans').convert(text) }, ensure_ascii=False) f.write(sss + '\n') yield item '''
def verification(self, number, answer): re_answer = re.findall(r'[\u4E00-\u9FA5]+', answer) for i in range(len(self.all_poet)): for j in range(len(self.all_poet[i]['paragraphs'])): if self.all_poet[i]['chapter'].find(self.questions[number]) != -1 \ or self.all_poet[i]['paragraphs'][j].find(self.questions[number]) != -1: sentence = re.findall(r'[\u4E00-\u9FA5]+', self.all_poet[i]['paragraphs'][j]) sentence = langconv.Converter('zh-hant').convert(sentence) if re_answer == sentence: self.answers[number] = answer self.unanswered[number] = 0 return True return False
def get_question(self): '''获得题目''' all_question = [] with open('./poet/question.txt', encoding="utf-8") as load_question: for row in load_question: word = row.replace('\n', '').replace('\r', '') all_question.append(word) while 1: random_poet = random.randint(0, len(all_question) - 1) if all_question[random_poet] not in self.questions: all_question[random_poet] = langconv.Converter( 'zh-hant').convert(all_question[random_poet]) self.questions.append(all_question[random_poet]) if len(self.questions) == self.question_amount: break
def preProcess(uStr): ustring = uStr.replace(' ', '') # ret=string2List(ustring.decode('utf-8')) ret = alph.string2List(ustring) msg = '' for key in ret: key = converter.Converter('zh-hans').convert(key) msg += key # ustring = msg.encode('utf-8') ustring = msg ustring = ustring.replace('x元', '价钱') ustring = ustring.replace('x日', '日期') ustring = ustring.replace('x折', '打折') ustring = ustring.replace('www', '网站') return ustring
def get_sentence(self): '''获得一个诗句 #从58000首诗里随机获取题目的代码 while 1: random_poet0 = random.randint(0, 57999) if random_poet0 not in self.poet_number: self.poet_number.append(random_poet0) break random_poet = self.poet_number[len(self.poet_number) - 1] address = './poet/poet.song.' + str(int(random_poet // 1000 * 1000)) + '.json' with open(address, 'r', encoding='utf-8') as load_f: load_dict = json.load(load_f) sentence_amount = len(load_dict[int(random_poet % 1000)]['paragraphs']) random_sentence = random.randint(0, sentence_amount - 1) sentences = re.findall(r'[\u4E00-\u9FA5]+', load_dict[int(random_poet % 1000)]['paragraphs'][random_sentence]) random_sentence = random.randint(0, len(sentences) - 1) sentence = sentences[random_sentence] self.right_answer.append(sentence) words = re.findall(r'[\u4E00-\u9FA5]', sentence) self.questions.append(words) ''' address = './poet/tssbs.json' #从唐诗三百首里随机获取题目的代码 with open(address, 'r', encoding='utf-8') as load_f: self.all_poet = json.load(load_f) while 1: random_poet = random.randint(0, len(self.all_poet) - 1) if random_poet not in self.poet_number: self.poet_number.append(random_poet) break sentence_amount = len(self.all_poet[random_poet]['paragraphs']) random_sentence = random.randint(0, sentence_amount - 1) sentences = re.findall(r'[\u4E00-\u9FA5]+', self.all_poet[self.poet_number[len(self.poet_number) - 1]]['paragraphs'][random_sentence]) if len(sentences) == 1: random_sentence = 0 else: random_sentence = random.randint(0, len(sentences) - 1) sentence = sentences[random_sentence] sentence = langconv.Converter('zh-hant').convert(sentence) self.right_answer.append(sentence) self.poet_name.append(self.all_poet[self.poet_number[len(self.poet_number) - 1]]['chapter']) words = re.findall(r'[\u4E00-\u9FA5]', sentence) self.questions.append(words)
def get_words(msg): """ split a message into a set of keywords Input: message: String Return: words_set:list of keywords """ #convert msg into simplified chinese langconv.Converter('zh-hans').convert(msg.decode('utf-8')) msg = msg.replace('\n', '') #ignore upper and lower case msg = msg.lower() #separate into a list of keywords using jieba wordslist_org = list(jieba.cut(msg, cut_all=False)) words_set = set(wordslist_org) words_set.discard(' ') words_set = filter(None, words_set) return words_set
def getDBNews(): conn = pymysql.Connect(host=host,port=port,user=user,password=password,charset=charset,db=db) if not conn: return False cursor = conn.cursor() result = cursor.execute("select * from news_chinese") results = cursor.fetchall() fileNews = open(cutFileName,'w', encoding = 'utf8') for rs in results: l = [] if not rs[3]: continue news = rs[3].strip() if not news: continue text = "".join(re.findall(r'[\d|\w]+',news))#������ϴ text = langconv.Converter('zh-hans').convert(text)#����ת�� cut_text = list(jieba.cut(text))#�д� for term in cut_text: l.append(term) fileNews.write(" ".join(l) + '\n') fileNews.close() conn.close() return True
def process(line): """Convert a line content traditional chinese character to a line only have simple chinese Args: line: a line decoded Returns: a line trans to simple chinese Raises: print error message """ try: simple_version = langconv.Converter('zh-hans').convert(line) return simple_version except: err_line = "Error occur in traditional to simple : " + \ line.encode(_ENCODE) + os.linesep err_msg = "traceback info: " + str(traceback.format_exc()) sys.stderr.write(err_line) sys.stderr.write(err_msg) return False
def simple(self, ustring): # translate to simple return langconv.Converter('zh-hans').convert(ustring.decode('utf-8'))
def guess_display(self): '''你说我猜界面''' score = '' if self.question_number > 0: if re.findall( r'[\u4E00-\u9FA5]+', self.answers[self.question_number - 1]) == re.findall( r'[\u4E00-\u9FA5]+', self.right_answer[self.question_number - 1][1]): score += '上一题回答正确;' else: score += '上一题回答错误;' grade = self.right_amount / self.question_amount * 100 score += '当前得分为:{0:.1f}分'.format(grade) score = langconv.Converter('zh-hant').convert(score) self.guess_interface = tkinter.Tk() self.guess_interface.title( langconv.Converter('zh-hant').convert("你说我猜")) self.guess_interface.geometry("400x400+500+150") img = Image.open("./image/背景5.jpg") photo = ImageTk.PhotoImage(img) bg_photo = tkinter.Canvas(self.guess_interface, width=400, height=400) bg_photo.create_image(250, 300, image=photo) bg_photo.create_text(150, 70, text=score, fill='black', font=("宋体", 12)) bg_photo.create_text( 135, 260, text=langconv.Converter('zh-hant').convert('请猜出上方内容所描述的诗句:'), fill='black', font=("宋体", 14)) bg_photo.pack() p1 = ttk.Progressbar(self.guess_interface, mode="determinate") p1.place(relwidth=1, relheight=0.02, relx=0, rely=0.01) p1["maximum"] = self.question_amount p1["value"] = self.question_number + 1 self.var = tkinter.StringVar() w = tkinter.Label( self.guess_interface, text=langconv.Converter('zh-hant').convert("剩余时间:" + str(self.time_limit) + "秒"), textvariable=self.var, font=("宋体", 12), bg='lightcyan', ) self.var.set( langconv.Converter('zh-hant').convert("剩余时间:" + str(self.time_limit) + "秒")) w.place(relwidth=0.32, relheight=0.06, relx=0.01, rely=0.04) label2 = tkinter.Label( self.guess_interface, text=langconv.Converter('zh-hant').convert( '译文:' + self.questions[self.question_number]), font=("宋体", 14), wraplength=360, bg='lightsteelblue') label2.place(relwidth=1, relheight=0.3, relx=0, rely=0.25) next_question = tkinter.Button( self.guess_interface, text=langconv.Converter('zh-hant').convert('下一题'), font=('楷体', 18), bg='springgreen', activebackground='lime', command=self.next_question_response) next_question.place(relwidth=0.2, relheight=0.08, relx=0.79, rely=0.04) self.answer = tkinter.Entry(self.guess_interface, font=("宋体", 14)) self.answer.place(relwidth=0.7, relheight=0.1, relx=0, rely=0.7) submit_button = tkinter.Button( self.guess_interface, text=langconv.Converter('zh-hant').convert('提交'), font=('楷体', 18), bg='springgreen', activebackground='lime', command=self.submit_response) submit_button.place(relwidth=0.28, relheight=0.1, relx=0.71, rely=0.7) see_right_answer = tkinter.Button( self.guess_interface, text=langconv.Converter('zh-hant').convert('查看答案'), font=('楷体', 18), bg='springgreen', activebackground='lime', command=self.show_right_answer) see_right_answer.place(relwidth=0.3, relheight=0.1, relx=0.35, rely=0.9) exit0 = tkinter.Button( self.guess_interface, text=langconv.Converter('zh-hant').convert("退出游戏"), font=('楷体', 18), bg='springgreen', activebackground='lime', command=self.exit_guess) exit0.place(relwidth=0.3, relheight=0.1, relx=0.7, rely=0.9) back0 = tkinter.Button( self.guess_interface, text=langconv.Converter('zh-hant').convert("返回首页"), font=('楷体', 18), bg='springgreen', activebackground='lime', command=self.back_mode_selection) back0.place(relwidth=0.3, relheight=0.1, relx=0, rely=0.9) self.guess_interface.protocol("WM_DELETE_WINDOW", self.exit_guess) self.get_time() self.guess_interface.mainloop()
def click_poet_display(self): '''点字成诗界面''' background_color = ['skyblue', 'grey'] score = '' if self.question_number > 0: if self.answers[self.question_number - 1] == self.click_poet.right_answer[ self.question_number - 1]: score += '上一题回答正确;' else: score += '上一题回答错误;' grade = self.right_amount / self.click_poet.question_amount * 100 score += '当前得分为:{0:.1f}分'.format(grade) score = langconv.Converter('zh-hant').convert(score) self.click_poet_interface = tkinter.Tk() self.click_poet_interface.title( langconv.Converter('zh-hant').convert("点字成诗")) self.click_poet_interface.geometry("400x400+500+150") img = Image.open("./image/背景5.jpg") photo = ImageTk.PhotoImage(img) bg_photo = tkinter.Canvas(self.click_poet_interface, width=400, height=400) bg_photo.create_image(250, 300, image=photo) bg_photo.create_text( 130, 280, text=langconv.Converter('zh-hant').convert('请点击上方的字凑成一句诗:'), fill='black', font=("宋体", 14)) bg_photo.create_text(150, 55, text=score, fill='black', font=("宋体", 12)) bg_photo.pack() p1 = ttk.Progressbar(self.click_poet_interface, mode="determinate") p1.place(relwidth=1, relheight=0.02, relx=0, rely=0.01) p1["maximum"] = self.click_poet.question_amount p1["value"] = self.question_number + 1 self.var = tkinter.StringVar() w = tkinter.Label( self.click_poet_interface, text=langconv.Converter('zh-hant').convert("剩余时间:" + str(self.time_limit) + "秒"), textvariable=self.var, font=("宋体", 12), bg='lightcyan', ) self.var.set( langconv.Converter('zh-hant').convert("剩余时间:" + str(self.time_limit) + "秒")) w.place(relwidth=0.32, relheight=0.06, relx=0.02, rely=0.04) next_question = tkinter.Button( self.click_poet_interface, text=langconv.Converter('zh-hant').convert('下一题'), font=('楷体', 18), bg='springgreen', activebackground='lime', command=self.next_question_response) next_question.place(relwidth=0.2, relheight=0.08, relx=0.78, rely=0.04) for i in range(3): for j in range(4): index = i * 4 + j word = tkinter.Button( self.click_poet_interface, font=('楷体', 18), bg=background_color[self.click_state[index]], text=self.click_poet.questions[ self.question_number][index], activeforeground='green', command=lambda index0=i, index1=j: self.word_response( index0, index1)) word.place(relwidth=0.225, relheight=0.15, relx=0.02 + 0.245 * j, rely=0.18 + 0.16 * i) see_right_answer = tkinter.Button( self.click_poet_interface, text=langconv.Converter('zh-hant').convert('查看答案'), font=('楷体', 18), bg='springgreen', activebackground='lime', command=self.show_right_answer) see_right_answer.place(relwidth=0.3, relheight=0.1, relx=0.35, rely=0.9) label2 = tkinter.Label(self.click_poet_interface, text=self.answers[self.question_number], font=("宋体", 18), bg='white', anchor='w', justify='left') label2.place(relwidth=0.7, relheight=0.1, relx=0.02, rely=0.76) delete_button = tkinter.Button(self.click_poet_interface, text='×', font=('楷体', 18), bg='springgreen', activebackground='lime', command=self.delete_response) delete_button.place(relwidth=0.24, relheight=0.1, relx=0.74, rely=0.76) exit0 = tkinter.Button( self.click_poet_interface, text=langconv.Converter('zh-hant').convert("退出游戏"), font=('楷体', 18), bg='springgreen', activebackground='lime', command=self.exit_click_poet) exit0.place(relwidth=0.3, relheight=0.1, relx=0.7, rely=0.9) back0 = tkinter.Button( self.click_poet_interface, text=langconv.Converter('zh-hant').convert("返回首页"), font=('楷体', 18), bg='springgreen', activebackground='lime', command=self.back_mode_selection) back0.place(relwidth=0.3, relheight=0.1, relx=0, rely=0.9) self.click_poet_interface.protocol("WM_DELETE_WINDOW", self.exit_click_poet) self.get_time() self.click_poet_interface.mainloop()
def run(self, mode, question_amount, answers, right_answer=[]): '''显示答案界面的运行函数''' right_amounts = 0 conclusion = '回答情况如下:\n\n' for i in range(question_amount): if answers[i] != '': if mode == 1: right_amounts += 1 conclusion += '{0:>2}、回答正确:{1}\n'.format(i + 1, answers[i]) else: if answers[i] == right_answer[i] or answers[ i] == right_answer[i][1]: right_amounts += 1 conclusion += '{0:>2}、回答正确。\n'.format(i + 1) else: conclusion += '{0:>2}、回答错误。\n'.format(i + 1) else: conclusion += '{0:>2}、未回答。\n'.format(i + 1) grade = right_amounts / question_amount * 100 score = '您的总得分为:{0:.1f}分'.format(grade) conclusion = langconv.Converter('zh-hant').convert(conclusion) score = langconv.Converter('zh-hant').convert(score) self.grade_interface = tkinter.Tk() self.grade_interface.title( langconv.Converter('zh-hant').convert("回答情况总结")) self.grade_interface.geometry("400x400+500+150") img = Image.open("./image/背景5.jpg") photo = ImageTk.PhotoImage(img) bg_photo = tkinter.Canvas(self.grade_interface, width=400, height=400) bg_photo.create_image(250, 300, image=photo) if mode == 1: bg_photo.create_text(120, 200, text=conclusion, fill='black', font=("宋体", 14)) if mode == 2 or mode == 3: bg_photo.create_text(80, 200, text=conclusion, fill='black', font=("宋体", 16)) bg_photo.create_text(120, 18, text=score, fill='black', font=("宋体", 18)) bg_photo.pack() exit0 = tkinter.Button( self.grade_interface, text=langconv.Converter('zh-hant').convert("退出游戏"), font=('楷体', 18), bg='springgreen', activebackground='lime', command=self.exit_grade_interface) exit0.place(relwidth=0.3, relheight=0.1, relx=0.7, rely=0.9) back0 = tkinter.Button( self.grade_interface, text=langconv.Converter('zh-hant').convert("返回首页"), font=('楷体', 18), bg='springgreen', activebackground='lime', command=self.grade_interface.destroy) back0.place(relwidth=0.3, relheight=0.1, relx=0, rely=0.9) self.grade_interface.protocol("WM_DELETE_WINDOW", self.exit_grade_interface) self.grade_interface.mainloop()
def say_poet_display(self): '''出口成诗界面''' background_color = ['skyblue', 'limegreen', 'grey'] self.say_poet_interface = tkinter.Tk() self.say_poet_interface.title( langconv.Converter('zh-hant').convert("出口成诗")) self.say_poet_interface.geometry("400x400+500+150") img = Image.open("./image/背景5.jpg") photo = ImageTk.PhotoImage(img) bg_photo = tkinter.Canvas(self.say_poet_interface, width=400, height=400) bg_photo.create_image(250, 300, image=photo) bg_photo.create_text( 136, 290, text=langconv.Converter('zh-hant').convert('请选词后在下方输入对应诗句:'), fill='black', font=("宋体", 14)) bg_photo.pack() p1 = ttk.Progressbar(self.say_poet_interface, mode="determinate") p1.place(relwidth=1, relheight=0.02, relx=0, rely=0.01) p1["maximum"] = self.say_poet.question_amount p1["value"] = self.right_amount self.var = tkinter.StringVar() w = tkinter.Label( self.say_poet_interface, text=langconv.Converter('zh-hant').convert("剩余时间:" + str(self.time_limit) + "秒"), textvariable=self.var, font=("宋体", 12), bg='lightcyan', ) self.var.set( langconv.Converter('zh-hant').convert("剩余时间:" + str(self.time_limit) + "秒")) w.place(relwidth=0.32, relheight=0.06, relx=0.02, rely=0.04) for i in range(4): for j in range(3): index = i * 3 + j question_button = tkinter.Button( self.say_poet_interface, text=self.say_poet.questions[index], bg=background_color[self.answering_state[index]], font=('楷体', 18), command=lambda index0=i, index1=j: self.word_response( index0, index1)) question_button.place(relwidth=0.3, relheight=0.13, relx=0.025 + 0.325 * j, rely=0.12 + 0.14 * i) self.answer = tkinter.Entry(self.say_poet_interface, font=("宋体", 14)) self.answer.place(relwidth=0.8, relheight=0.1, relx=0, rely=0.78) submit_button = tkinter.Button( self.say_poet_interface, text=langconv.Converter('zh-hant').convert('提交'), font=('楷体', 18), bg='springgreen', activebackground='lime', command=self.submit_response) submit_button.place(relwidth=0.18, relheight=0.1, relx=0.81, rely=0.78) exit0 = tkinter.Button( self.say_poet_interface, text=langconv.Converter('zh-hant').convert("退出游戏"), font=('楷体', 18), bg='springgreen', activebackground='lime', command=self.exit_say_poet) exit0.place(relwidth=0.3, relheight=0.1, relx=0.7, rely=0.9) back0 = tkinter.Button( self.say_poet_interface, text=langconv.Converter('zh-hant').convert("返回首页"), font=('楷体', 18), bg='springgreen', activebackground='lime', command=self.back_mode_selection) back0.place(relwidth=0.3, relheight=0.1, relx=0, rely=0.9) self.say_poet_interface.protocol("WM_DELETE_WINDOW", self.exit_say_poet) self.get_time() self.say_poet_interface.mainloop()