|
|
import tkinter as tk
|
|
|
from tkinter import *
|
|
|
from data import CPU
|
|
|
import time
|
|
|
|
|
|
cpu = CPU()
|
|
|
|
|
|
WORD = '#00f5ff'
|
|
|
color1 = '#ee28a3'
|
|
|
color2 = '#668B8B'
|
|
|
NOMARK = '#c5c9c5'
|
|
|
NOMARK1 = NOMARK
|
|
|
BLUE = "#0080FF"
|
|
|
BLACK = "#000000"
|
|
|
WHITE = "#FFFFFF"
|
|
|
RED = "#FFAAAA"
|
|
|
NORED = NOMARK1 # '#ffdddd'
|
|
|
YELLOW = "#FFFACD"
|
|
|
GREY = '#808080'
|
|
|
GOLD = '#FFD700'
|
|
|
GREEN = '#00FA9A'
|
|
|
NOGREEN = NOMARK1 # '#00321f'
|
|
|
BACK = '#0153d2'
|
|
|
ORANGE = '#d3b719'
|
|
|
NOORANGE = NOMARK1 # '#ede2a3'
|
|
|
MEMBACK = '#fba651'
|
|
|
MEMMARK = '#fd280f'
|
|
|
MEMWORD = '#000000'
|
|
|
|
|
|
width = 1000 #设置窗口宽度
|
|
|
height = 700 #设置窗口高度
|
|
|
root = tk.Tk() #设置主框架
|
|
|
root.title("CPU可视化") #设置标题
|
|
|
root.config(bg=BLACK) #设置背景颜色
|
|
|
root.geometry(f'{width + 300}x{height}') #设置大小
|
|
|
cv = tk.Canvas(root, bg='white', bd=2, relief="sunken", width=width + 300, height=height, background=BLACK,
|
|
|
borderwidth=0, highlightthickness=0) #设置画布
|
|
|
cv.place(x=0, y=0, anchor=NW) #放置画布
|
|
|
|
|
|
|
|
|
def round_rectangle(x1, y1, x2, y2, r=25, **kwargs):
|
|
|
points = (
|
|
|
x1 + r, y1, x1 + r, y1, x2 - r, y1, x2 - r, y1, x2, y1, x2, y1 + r, x2, y1 + r, x2, y2 - r, x2, y2 - r, x2, y2,
|
|
|
x2 - r, y2, x2 - r, y2, x1 + r, y2, x1 + r, y2, x1, y2, x1, y2 - r, x1, y2 - r, x1, y1 + r, x1, y1 + r, x1, y1)
|
|
|
return cv.create_polygon(points, **kwargs, smooth=True)
|
|
|
|
|
|
|
|
|
# cv.grid(row=1,column=0)
|
|
|
|
|
|
# cv.create_oval(20,20,40, 40, fill='red',width=0)
|
|
|
|
|
|
# image = Image.open('image/CPU2.png')
|
|
|
# im = ImageTk.PhotoImage(image)
|
|
|
|
|
|
root_right = tk.Frame(root, bg=WHITE, relief="groove", width=250, height=height - 80)
|
|
|
root_right.place(x=width + 20, y=40, anchor=NW) # 右边栏
|
|
|
round_rectangle(width + 20, 15, width + 270, height - 25, r=25, fill=WHITE, width=0)
|
|
|
round_rectangle(20, 15, 970, height - 25, r=25, fill=WHITE, width=0)
|
|
|
|
|
|
|
|
|
# cv.create_image(0, 0, anchor=NW, image=im)
|
|
|
# cv.create_rectangle(0, 0, width, 10, fill=WHITE, width=0)
|
|
|
# cv.create_rectangle(20, 14, 30, 674, fill=WHITE, width=0)
|
|
|
#
|
|
|
# cv.create_rectangle(710, 24, 925, 140, fill=WHITE, width=0)
|
|
|
# cv.create_rectangle(77, 434, 533, 642, fill=color1, width=0)
|
|
|
|
|
|
|
|
|
def use_rgb(rgb):
|
|
|
"""
|
|
|
将rgb转十六进制
|
|
|
Args:
|
|
|
rgb: rgb颜色
|
|
|
Returns: 十六进制
|
|
|
"""
|
|
|
rgb = str(rgb)
|
|
|
RGB = rgb.replace('(', '').replace(")", '').split(',') # 将RGB格式划分开来
|
|
|
color = "#"
|
|
|
for i in RGB:
|
|
|
num = int(i)
|
|
|
# 将R、G、B分别转化为16进制拼接转换并大写 hex() 函数用于将10进制整数转换成16进制,以字符串形式表示
|
|
|
color += str(hex(num))[-2:].replace('x', '0')
|
|
|
|
|
|
# for i in range(len(color)):
|
|
|
# if color[i] >= 'a' and color[i] <= 'z':
|
|
|
# c = int(color[i]) + int('A') - int('a')
|
|
|
# color[i] = str[c]
|
|
|
return color.upper()
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
# print(use_rgb((225, 225, 225)))
|
|
|
def left1(event):
|
|
|
print(event.x, event.y)
|
|
|
|
|
|
|
|
|
cv.bind('<Button-1>', left1)
|
|
|
mainloop()#执行GUI界面
|