dr_py/test/测试gui.py
2023-04-23 21:04:12 +08:00

166 lines
14 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import tkinter as tk
import time
import threading
from tkinter import ttk
from tkinter import messagebox#信息框模块, messagebox.showinfo('标题','普通信息框'),messagebox.askquestion('标题','信息框带确认取消按钮')
class 启动窗口:
def __init__(self, 主窗口):
self.点击记录 = False
self.主窗口 = 主窗口
self.主窗口.title('这是个窗口')#设置窗口标题
self.主窗口.resizable(width=False, height=False)#设置窗口宽高是否可调
screenwidth = self.主窗口.winfo_screenwidth()#获取屏幕宽度
screenheight = self.主窗口.winfo_screenheight()#获取屏幕高度
size = '%dx%d+%d+%d' % (561, 380, (screenwidth - 561) / 2, (screenheight - 380) / 2)
self.主窗口.geometry(size)#设置窗口左边,顶边,宽度,高度
#self.主窗口.iconbitmap(设置软件图标ICO图标完整路径)
self.标签2_标题 = tk.StringVar()#创建存放标签标题的变量
self.标签2_标题.set('密码')
self.标签2 = ttk.Label(self.主窗口,textvariable=self.标签2_标题,anchor=tk.W)#创建标签,设置标签标题,对齐方式
self.标签2.place(x=72,y=47,width=48,height=24)#设置标签左边 顶边 宽度 高度
self.标签1_标题 = tk.StringVar()#创建存放标签标题的变量
self.标签1_标题.set('账号')
self.标签1 = ttk.Label(self.主窗口,textvariable=self.标签1_标题,anchor=tk.W)#创建标签,设置标签标题,对齐方式
self.标签1.place(x=72,y=16,width=48,height=24)#设置标签左边 顶边 宽度 高度
self.编辑框4_滚动条_横 = tk.Scrollbar(self.主窗口,orient=tk.HORIZONTAL)#创建滚动条在窗口上 设置成横向
self.编辑框4_滚动条_横.place(x=160,y=358,width=176,height=18)#设置滚动条左边 顶边 宽度 高度
self.编辑框4_滚动条_纵 = tk.Scrollbar(self.主窗口)#创建滚动条在窗口上 默认纵向
self.编辑框4_滚动条_纵.place(x=318,y=256,width=18,height=120)#设置滚动条左边 顶边 宽度 高度
self.编辑框4 = tk.Text(self.主窗口,yscrollcommand=self.编辑框4_滚动条_纵.set,xscrollcommand=self.编辑框4_滚动条_横.set,wrap=tk.NONE)#创建编辑框 设置输入方式 绑定横向滚动条 绑定横向滚动条 设置不自动换行
self.编辑框4_滚动条_纵.config(command=self.编辑框4.yview)#编辑框关联纵向滚动条
self.编辑框4_滚动条_横.config(command=self.编辑框4.xview)#编辑框关联横向滚动条
self.编辑框4.insert(tk.END,'123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000')#在编辑框最后加入内容
self.编辑框4.place(x=160,y=256,width=158,height=102)#设置编辑框左边 顶边 宽度 高度
self.编辑框3_滚动条_纵 = tk.Scrollbar(self.主窗口)#创建滚动条在窗口上 默认纵向
self.编辑框3_滚动条_纵.place(x=126,y=248,width=18,height=128)#设置滚动条左边 顶边 宽度 高度
self.编辑框3 = tk.Text(self.主窗口,yscrollcommand=self.编辑框3_滚动条_纵.set,wrap=tk.NONE)#创建编辑框 设置输入方式 绑定纵向滚动条 设置不自动换行
self.编辑框3_滚动条_纵.config(command=self.编辑框3.yview)#编辑框关联纵向滚动条
self.编辑框3.insert(tk.END,'123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000')#在编辑框最后加入内容
self.编辑框3.place(x=40,y=248,width=86,height=128)#设置编辑框左边 顶边 宽度 高度
self.编辑框2_滚动条_横 = tk.Scrollbar(self.主窗口,orient=tk.HORIZONTAL)#创建滚动条在窗口上 设置成横向
self.编辑框2_滚动条_横.place(x=160,y=230,width=176,height=18)#设置滚动条左边 顶边 宽度 高度
self.编辑框2 = tk.Text(self.主窗口,xscrollcommand=self.编辑框2_滚动条_横.set,wrap=tk.NONE)#创建编辑框 设置输入方式 绑定横向滚动条 设置不自动换行
self.编辑框2_滚动条_横.config(command=self.编辑框2.xview)#编辑框关联横向滚动条
self.编辑框2.insert(tk.END,'123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000\n123\n456000000000000000000000000000000012312345678\n789\n000')#在编辑框最后加入内容
self.编辑框2.place(x=160,y=176,width=176,height=54)#设置编辑框左边 顶边 宽度 高度
self.编辑框1 = tk.Text(self.主窗口,wrap=tk.NONE)#创建编辑框 设置输入方式 设置不自动换行
self.编辑框1.insert(tk.END,'123\n456\n789')#在编辑框最后加入内容
self.编辑框1.place(x=40,y=176,width=104,height=64)#设置编辑框左边 顶边 宽度 高度
self.编辑框_密码_内容 = tk.StringVar()#创建存放编辑框内容的变量
self.编辑框_密码_内容.set('我是编辑框')
self.编辑框_密码 = ttk.Entry(self.主窗口,textvariable=self.编辑框_密码_内容,justify=tk.LEFT)#创建编辑框 设置标题 输入方式 是否密码输入
self.编辑框_密码.place(x=104,y=50,width=80,height=21)#设置编辑框左边 顶边 宽度 高度
self.编辑框_账号_内容 = tk.StringVar()#创建存放编辑框内容的变量
self.编辑框_账号_内容.set('456')
self.编辑框_账号 = ttk.Entry(self.主窗口,textvariable=self.编辑框_账号_内容,show='*',justify=tk.CENTER)#创建编辑框 设置标题 输入方式 是否密码输入
self.编辑框_账号.place(x=104,y=18,width=80,height=20)#设置编辑框左边 顶边 宽度 高度
self.按钮_退出_标题 = tk.StringVar()
self.按钮_退出_标题.set('按钮')
self.按钮_退出 = ttk.Button(self.主窗口,textvariable=self.按钮_退出_标题)#command=按钮点击触发的函数,创建按钮 绑定主窗口 设置标题 是否禁止
self.按钮_退出.place(x=208,y=47,width=88,height=24)#设置按钮左边 顶边 宽度 高度
self.按钮_退出['command'] = self.按钮_退出_被鼠标左键单击
self.按钮1_标题 = tk.StringVar()
self.按钮1_标题.set('我是按钮')
self.按钮1 = ttk.Button(self.主窗口,textvariable=self.按钮1_标题)#command=按钮点击触发的函数,创建按钮 绑定主窗口 设置标题 是否禁止
self.按钮1.place(x=208,y=16,width=88,height=24)#设置按钮左边 顶边 宽度 高度
self.按钮1['command'] = self.按钮1_被鼠标左键单击
self.组合框2 = ttk.Combobox(self.主窗口,values=('123','456','789'), state='readonly')#创建组合框,设置组合框项目,类型
self.组合框2.current(0)#设置组合框现行选中项
self.组合框2.place(x=159,y=144,width=168,height=23)#设置组合框左边 顶边 宽度 高度
self.组合框1 = ttk.Combobox(self.主窗口,values=())#创建组合框,设置组合框项目,类型
self.组合框1.place(x=39,y=144,width=100,height=23)#设置组合框左边 顶边 宽度 高度
self.单选框选中变量 = tk.IntVar()#创建一个变量存放单选框状态,同一组单选框要用一个变量
self.单选框3_标题 = tk.StringVar()#创建个变量存放单选框标题
self.单选框3_标题.set('单选框3')
self.单选框3 = ttk.Radiobutton(self.主窗口,textvariable=self.单选框3_标题,variable=self.单选框选中变量,value='单选框3')#command=单选框选中时执行的函数,创建单选框 设置标题 是否禁止 关联选中变量 设置标识名称
self.单选框3.place(x=219,y=88,width=80,height=24)#设置单选框左边 顶边 宽度 高度
self.单选框选中变量.set('单选框2')#设置要选中的单选框
self.单选框2_标题 = tk.StringVar()#创建个变量存放单选框标题
self.单选框2_标题.set('单选框2')
self.单选框2 = ttk.Radiobutton(self.主窗口,textvariable=self.单选框2_标题,variable=self.单选框选中变量,value='单选框2')#command=单选框选中时执行的函数,创建单选框 设置标题 是否禁止 关联选中变量 设置标识名称
self.单选框2.place(x=131,y=88,width=80,height=24)#设置单选框左边 顶边 宽度 高度
self.单选框1_标题 = tk.StringVar()#创建个变量存放单选框标题
self.单选框1_标题.set('单选框1')
self.单选框1 = ttk.Radiobutton(self.主窗口,textvariable=self.单选框1_标题,variable=self.单选框选中变量,value='单选框1')#command=单选框选中时执行的函数,创建单选框 设置标题 是否禁止 关联选中变量 设置标识名称
self.单选框1.place(x=35,y=88,width=80,height=24)#设置单选框左边 顶边 宽度 高度
self.选择框3_是否选中 = tk.IntVar()#创建变量存放选择框是否选中
self.选择框3_是否选中.set(1)#设置选择框为选中状态
self.选择框3_标题 = tk.StringVar()#创建变量存放选择框标题
self.选择框3_标题.set('选择框3')
self.选择框3 = ttk.Checkbutton(self.主窗口,textvariable=self.选择框3_标题,variable=self.选择框3_是否选中,onvalue=1,offvalue=0)#command=选择框选中时执行的函数,创建选择框 设置标题 设置是否禁止 是否选中 选中时为1 反则0 可修改
self.选择框3.place(x=219,y=120,width=80,height=24)#设置选择框左边 顶边 宽度 高度
self.选择框2_是否选中 = tk.IntVar()#创建变量存放选择框是否选中
self.选择框2_是否选中.set(0)#设置选择框为未选中状态
self.选择框2_标题 = tk.StringVar()#创建变量存放选择框标题
self.选择框2_标题.set('选择框2')
self.选择框2 = ttk.Checkbutton(self.主窗口,textvariable=self.选择框2_标题,variable=self.选择框2_是否选中,onvalue=1,offvalue=0)#command=选择框选中时执行的函数,创建选择框 设置标题 设置是否禁止 是否选中 选中时为1 反则0 可修改
self.选择框2.place(x=131,y=120,width=80,height=24)#设置选择框左边 顶边 宽度 高度
self.选择框1_是否选中 = tk.IntVar()#创建变量存放选择框是否选中
self.选择框1_是否选中.set(1)#设置选择框为选中状态
self.选择框1_标题 = tk.StringVar()#创建变量存放选择框标题
self.选择框1_标题.set('选择框1')
self.选择框1 = ttk.Checkbutton(self.主窗口,textvariable=self.选择框1_标题,variable=self.选择框1_是否选中,onvalue=1,offvalue=0)#command=选择框选中时执行的函数,创建选择框 设置标题 设置是否禁止 是否选中 选中时为1 反则0 可修改
self.选择框1.place(x=35,y=120,width=80,height=24)#设置选择框左边 顶边 宽度 高度
self.超级列表框1 = ttk.Treeview(self.主窗口,show='headings',columns=('id','账号','密码'))#创建超级列表框,去掉首列,设置表头
self.超级列表框1.column('id', width=50,anchor='w')
self.超级列表框1.column('账号', width=80,anchor='center')
self.超级列表框1.column('密码', width=70,anchor='e') #设置列属性
self.超级列表框1.heading('id', text='id',anchor='w')
self.超级列表框1.heading('账号', text='账号',anchor='center')
self.超级列表框1.heading('密码', text='密码',anchor='e') #设置表头属性
self.超级列表框1.place(x=343,y=8,width=204,height=360)#设置超级列表框左边 顶边 宽度 高度
def 按钮_退出_被鼠标左键单击(self):
threading.Thread(target=self.按钮_退出_被鼠标左键单击_线程).start()
def 按钮_退出_被鼠标左键单击_线程(self):
time.sleep(0.25)
if self.点击记录 == False:
self.点击记录 = True
time.sleep(0.2)
self.点击记录 = False
print('被鼠标左键单击')
else:
self.点击记录 = False
def 按钮1_被鼠标左键单击(self):
threading.Thread(target=self.按钮1_被鼠标左键单击_线程).start()
def 按钮1_被鼠标左键单击_线程(self):
time.sleep(0.25)
if self.点击记录 == False:
self.点击记录 = True
time.sleep(0.2)
self.点击记录 = False
print('被鼠标左键单击')
else:
self.点击记录 = False
if __name__ == '__main__':
root = tk.Tk()
app = 启动窗口(root)
root.mainloop()