# -*- coding: utf-8 -*-
"""
Created on Fri Nov 22 15:12:43 2019
@author: weiping
"""
import tkinter as tk
import re
import requests
import time
'''
0 坤、000
1 乾、111
2 兌、011
3 離、101
4 震、001
5 巽、110
6 坎、010
7 艮、100
lit =['000','111','011','101','001','110','010','100']
'''
root = tk.Tk()
root.geometry('1000x500')
root.title('算一卦')
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = {'User-Agent': user_agent} #請求
sg = 'sg'
xg = 'xg'
var = tk.IntVar()
l = tk.Entry(root,textvariable = var)
l.pack()
var.set('請想一個數字輸入')
st =1
def fr_del():
global st,fr1,fr2,fr
fr.pack_forget()
fr1.pack_forget()
fr2.pack_forget()
var.set('請重新輸入一個數字')
st = 1
def gua():
global st
try:
while st<= 1 :
global fr1,fr2,fr
fr = tk.Frame(root)
fr.pack()
fr1 = tk.Frame(fr,width = 450,height = 300)
fr1.pack(side = 'left')
fr2 = tk.Frame(fr,width = 450,height = 300)
fr2.pack(side = 'right')
can = tk.Canvas(fr1,bg = 'red')
st = st +1
lit =['000','111','011','101','001','110','010','100']
global sg,xg
tt = l.get()
print(type((tt)))
def quyu(n):
if n< 64:
a,b = divmod(n,8)
else:
c,d = divmod(n,8)
a,b = quyu(c)
return a,b
def rand_time():
a = time.localtime()
def t(ti):
if ti % 2 != 0:
a1 = '1'
else:
a1 = '0'
return a1
return t(a.tm_hour) + t(a.tm_min) + t(a.tm_sec)
xg = rand_time()
a,b = quyu(int(tt))
print(a,b)
for i in range(8):
#if i == a :
# xg = lit[i]
if i == b :
sg = lit[i]
for i in range(3):
if xg[i] == '1':
rect1 = can.create_rectangle(150,(i+11)*10,150+80,(i+11)*10+3,fill = 'black')
else:
rect11 = can.create_rectangle(150,(i+11)*10,150+30,(i+11)*10+3,fill = 'black')
rect12 = can.create_rectangle(200,(i+11)*10,200+30,(i+11)*10+3,fill = 'black')
for i in range(3):
if sg[i] == '1':
rect1 = can.create_rectangle(150,(i+14)*10,150+80,(i+14)*10+3,fill = 'black')
else:
rect11 = can.create_rectangle(150,(i+14)*10,150+30,(i+14)*10+3,fill = 'black')
rect12 = can.create_rectangle(200,(i+14)*10,200+30,(i+14)*10+3,fill = 'black')
can.pack()
url1 = 'http://www.64gua.com/yj/jie1/'
url2 = xg+sg
url3 = '.asp'
url = url1+url2+url3
r = requests.get(url)
r.encoding = 'GBk'
p1 = '(【原文】.*?)\<.*?\>\\r\\n'
p2 = '(【譯文】.*?)\<.*?\>\\r\\n'
p3 = '(《象》.*?)\<.*?\>\\r\\n'
p4 = '(《象辭》.*?)\<.*?\>\\r\\n'
ret0 = re.findall(p1,r.text)[0].strip()
ret1 = re.findall(p2,r.text)[0].strip()
ret2 = re.findall(p3,r.text)[0].strip()
ret3 = re.findall(p4,r.text)[0].strip()
ret = ret0 + '\n' + ret1 + '\n' +ret2 + '\n' + ret3
guaci = tk.Label(fr2,text = ret,wraplength = 400,font = ('楷體',18),justify='left')
guaci.pack()
except(ValueError):
tk.Label(root,text = '必須輸入數值,請重置!').pack()
tk.Label(root,text='建議以第一次爲準').pack()
b1 = tk.Button(root,text = '卦',command = gua)
b1.pack()
b2 = tk.Button(root,text = '重置', command = fr_del)
b2.pack()
root.mainloop()
效果圖如下:(比較簡陋)