测试gui.py 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. import tkinter as tk
  2. import time
  3. import threading
  4. from tkinter import ttk
  5. from tkinter import messagebox#信息框模块, messagebox.showinfo('标题','普通信息框'),messagebox.askquestion('标题','信息框带确认取消按钮')
  6. class 启动窗口:
  7. def __init__(self, 主窗口):
  8. self.点击记录 = False
  9. self.主窗口 = 主窗口
  10. self.主窗口.title('这是个窗口')#设置窗口标题
  11. self.主窗口.resizable(width=False, height=False)#设置窗口宽高是否可调
  12. screenwidth = self.主窗口.winfo_screenwidth()#获取屏幕宽度
  13. screenheight = self.主窗口.winfo_screenheight()#获取屏幕高度
  14. size = '%dx%d+%d+%d' % (561, 380, (screenwidth - 561) / 2, (screenheight - 380) / 2)
  15. self.主窗口.geometry(size)#设置窗口左边,顶边,宽度,高度
  16. #self.主窗口.iconbitmap(设置软件图标,ICO图标完整路径)
  17. self.标签2_标题 = tk.StringVar()#创建存放标签标题的变量
  18. self.标签2_标题.set('密码')
  19. self.标签2 = ttk.Label(self.主窗口,textvariable=self.标签2_标题,anchor=tk.W)#创建标签,设置标签标题,对齐方式
  20. self.标签2.place(x=72,y=47,width=48,height=24)#设置标签左边 顶边 宽度 高度
  21. self.标签1_标题 = tk.StringVar()#创建存放标签标题的变量
  22. self.标签1_标题.set('账号')
  23. self.标签1 = ttk.Label(self.主窗口,textvariable=self.标签1_标题,anchor=tk.W)#创建标签,设置标签标题,对齐方式
  24. self.标签1.place(x=72,y=16,width=48,height=24)#设置标签左边 顶边 宽度 高度
  25. self.编辑框4_滚动条_横 = tk.Scrollbar(self.主窗口,orient=tk.HORIZONTAL)#创建滚动条在窗口上 设置成横向
  26. self.编辑框4_滚动条_横.place(x=160,y=358,width=176,height=18)#设置滚动条左边 顶边 宽度 高度
  27. self.编辑框4_滚动条_纵 = tk.Scrollbar(self.主窗口)#创建滚动条在窗口上 默认纵向
  28. self.编辑框4_滚动条_纵.place(x=318,y=256,width=18,height=120)#设置滚动条左边 顶边 宽度 高度
  29. self.编辑框4 = tk.Text(self.主窗口,yscrollcommand=self.编辑框4_滚动条_纵.set,xscrollcommand=self.编辑框4_滚动条_横.set,wrap=tk.NONE)#创建编辑框 设置输入方式 绑定横向滚动条 绑定横向滚动条 设置不自动换行
  30. self.编辑框4_滚动条_纵.config(command=self.编辑框4.yview)#编辑框关联纵向滚动条
  31. self.编辑框4_滚动条_横.config(command=self.编辑框4.xview)#编辑框关联横向滚动条
  32. 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')#在编辑框最后加入内容
  33. self.编辑框4.place(x=160,y=256,width=158,height=102)#设置编辑框左边 顶边 宽度 高度
  34. self.编辑框3_滚动条_纵 = tk.Scrollbar(self.主窗口)#创建滚动条在窗口上 默认纵向
  35. self.编辑框3_滚动条_纵.place(x=126,y=248,width=18,height=128)#设置滚动条左边 顶边 宽度 高度
  36. self.编辑框3 = tk.Text(self.主窗口,yscrollcommand=self.编辑框3_滚动条_纵.set,wrap=tk.NONE)#创建编辑框 设置输入方式 绑定纵向滚动条 设置不自动换行
  37. self.编辑框3_滚动条_纵.config(command=self.编辑框3.yview)#编辑框关联纵向滚动条
  38. 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')#在编辑框最后加入内容
  39. self.编辑框3.place(x=40,y=248,width=86,height=128)#设置编辑框左边 顶边 宽度 高度
  40. self.编辑框2_滚动条_横 = tk.Scrollbar(self.主窗口,orient=tk.HORIZONTAL)#创建滚动条在窗口上 设置成横向
  41. self.编辑框2_滚动条_横.place(x=160,y=230,width=176,height=18)#设置滚动条左边 顶边 宽度 高度
  42. self.编辑框2 = tk.Text(self.主窗口,xscrollcommand=self.编辑框2_滚动条_横.set,wrap=tk.NONE)#创建编辑框 设置输入方式 绑定横向滚动条 设置不自动换行
  43. self.编辑框2_滚动条_横.config(command=self.编辑框2.xview)#编辑框关联横向滚动条
  44. 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')#在编辑框最后加入内容
  45. self.编辑框2.place(x=160,y=176,width=176,height=54)#设置编辑框左边 顶边 宽度 高度
  46. self.编辑框1 = tk.Text(self.主窗口,wrap=tk.NONE)#创建编辑框 设置输入方式 设置不自动换行
  47. self.编辑框1.insert(tk.END,'123\n456\n789')#在编辑框最后加入内容
  48. self.编辑框1.place(x=40,y=176,width=104,height=64)#设置编辑框左边 顶边 宽度 高度
  49. self.编辑框_密码_内容 = tk.StringVar()#创建存放编辑框内容的变量
  50. self.编辑框_密码_内容.set('我是编辑框')
  51. self.编辑框_密码 = ttk.Entry(self.主窗口,textvariable=self.编辑框_密码_内容,justify=tk.LEFT)#创建编辑框 设置标题 输入方式 是否密码输入
  52. self.编辑框_密码.place(x=104,y=50,width=80,height=21)#设置编辑框左边 顶边 宽度 高度
  53. self.编辑框_账号_内容 = tk.StringVar()#创建存放编辑框内容的变量
  54. self.编辑框_账号_内容.set('456')
  55. self.编辑框_账号 = ttk.Entry(self.主窗口,textvariable=self.编辑框_账号_内容,show='*',justify=tk.CENTER)#创建编辑框 设置标题 输入方式 是否密码输入
  56. self.编辑框_账号.place(x=104,y=18,width=80,height=20)#设置编辑框左边 顶边 宽度 高度
  57. self.按钮_退出_标题 = tk.StringVar()
  58. self.按钮_退出_标题.set('按钮')
  59. self.按钮_退出 = ttk.Button(self.主窗口,textvariable=self.按钮_退出_标题)#command=按钮点击触发的函数,创建按钮 绑定主窗口 设置标题 是否禁止
  60. self.按钮_退出.place(x=208,y=47,width=88,height=24)#设置按钮左边 顶边 宽度 高度
  61. self.按钮_退出['command'] = self.按钮_退出_被鼠标左键单击
  62. self.按钮1_标题 = tk.StringVar()
  63. self.按钮1_标题.set('我是按钮')
  64. self.按钮1 = ttk.Button(self.主窗口,textvariable=self.按钮1_标题)#command=按钮点击触发的函数,创建按钮 绑定主窗口 设置标题 是否禁止
  65. self.按钮1.place(x=208,y=16,width=88,height=24)#设置按钮左边 顶边 宽度 高度
  66. self.按钮1['command'] = self.按钮1_被鼠标左键单击
  67. self.组合框2 = ttk.Combobox(self.主窗口,values=('123','456','789'), state='readonly')#创建组合框,设置组合框项目,类型
  68. self.组合框2.current(0)#设置组合框现行选中项
  69. self.组合框2.place(x=159,y=144,width=168,height=23)#设置组合框左边 顶边 宽度 高度
  70. self.组合框1 = ttk.Combobox(self.主窗口,values=())#创建组合框,设置组合框项目,类型
  71. self.组合框1.place(x=39,y=144,width=100,height=23)#设置组合框左边 顶边 宽度 高度
  72. self.单选框选中变量 = tk.IntVar()#创建一个变量存放单选框状态,同一组单选框要用一个变量
  73. self.单选框3_标题 = tk.StringVar()#创建个变量存放单选框标题
  74. self.单选框3_标题.set('单选框3')
  75. self.单选框3 = ttk.Radiobutton(self.主窗口,textvariable=self.单选框3_标题,variable=self.单选框选中变量,value='单选框3')#command=单选框选中时执行的函数,创建单选框 设置标题 是否禁止 关联选中变量 设置标识名称
  76. self.单选框3.place(x=219,y=88,width=80,height=24)#设置单选框左边 顶边 宽度 高度
  77. self.单选框选中变量.set('单选框2')#设置要选中的单选框
  78. self.单选框2_标题 = tk.StringVar()#创建个变量存放单选框标题
  79. self.单选框2_标题.set('单选框2')
  80. self.单选框2 = ttk.Radiobutton(self.主窗口,textvariable=self.单选框2_标题,variable=self.单选框选中变量,value='单选框2')#command=单选框选中时执行的函数,创建单选框 设置标题 是否禁止 关联选中变量 设置标识名称
  81. self.单选框2.place(x=131,y=88,width=80,height=24)#设置单选框左边 顶边 宽度 高度
  82. self.单选框1_标题 = tk.StringVar()#创建个变量存放单选框标题
  83. self.单选框1_标题.set('单选框1')
  84. self.单选框1 = ttk.Radiobutton(self.主窗口,textvariable=self.单选框1_标题,variable=self.单选框选中变量,value='单选框1')#command=单选框选中时执行的函数,创建单选框 设置标题 是否禁止 关联选中变量 设置标识名称
  85. self.单选框1.place(x=35,y=88,width=80,height=24)#设置单选框左边 顶边 宽度 高度
  86. self.选择框3_是否选中 = tk.IntVar()#创建变量存放选择框是否选中
  87. self.选择框3_是否选中.set(1)#设置选择框为选中状态
  88. self.选择框3_标题 = tk.StringVar()#创建变量存放选择框标题
  89. self.选择框3_标题.set('选择框3')
  90. self.选择框3 = ttk.Checkbutton(self.主窗口,textvariable=self.选择框3_标题,variable=self.选择框3_是否选中,onvalue=1,offvalue=0)#command=选择框选中时执行的函数,创建选择框 设置标题 设置是否禁止 是否选中 选中时为1 反则0 可修改
  91. self.选择框3.place(x=219,y=120,width=80,height=24)#设置选择框左边 顶边 宽度 高度
  92. self.选择框2_是否选中 = tk.IntVar()#创建变量存放选择框是否选中
  93. self.选择框2_是否选中.set(0)#设置选择框为未选中状态
  94. self.选择框2_标题 = tk.StringVar()#创建变量存放选择框标题
  95. self.选择框2_标题.set('选择框2')
  96. self.选择框2 = ttk.Checkbutton(self.主窗口,textvariable=self.选择框2_标题,variable=self.选择框2_是否选中,onvalue=1,offvalue=0)#command=选择框选中时执行的函数,创建选择框 设置标题 设置是否禁止 是否选中 选中时为1 反则0 可修改
  97. self.选择框2.place(x=131,y=120,width=80,height=24)#设置选择框左边 顶边 宽度 高度
  98. self.选择框1_是否选中 = tk.IntVar()#创建变量存放选择框是否选中
  99. self.选择框1_是否选中.set(1)#设置选择框为选中状态
  100. self.选择框1_标题 = tk.StringVar()#创建变量存放选择框标题
  101. self.选择框1_标题.set('选择框1')
  102. self.选择框1 = ttk.Checkbutton(self.主窗口,textvariable=self.选择框1_标题,variable=self.选择框1_是否选中,onvalue=1,offvalue=0)#command=选择框选中时执行的函数,创建选择框 设置标题 设置是否禁止 是否选中 选中时为1 反则0 可修改
  103. self.选择框1.place(x=35,y=120,width=80,height=24)#设置选择框左边 顶边 宽度 高度
  104. self.超级列表框1 = ttk.Treeview(self.主窗口,show='headings',columns=('id','账号','密码'))#创建超级列表框,去掉首列,设置表头
  105. self.超级列表框1.column('id', width=50,anchor='w')
  106. self.超级列表框1.column('账号', width=80,anchor='center')
  107. self.超级列表框1.column('密码', width=70,anchor='e') #设置列属性
  108. self.超级列表框1.heading('id', text='id',anchor='w')
  109. self.超级列表框1.heading('账号', text='账号',anchor='center')
  110. self.超级列表框1.heading('密码', text='密码',anchor='e') #设置表头属性
  111. self.超级列表框1.place(x=343,y=8,width=204,height=360)#设置超级列表框左边 顶边 宽度 高度
  112. def 按钮_退出_被鼠标左键单击(self):
  113. threading.Thread(target=self.按钮_退出_被鼠标左键单击_线程).start()
  114. def 按钮_退出_被鼠标左键单击_线程(self):
  115. time.sleep(0.25)
  116. if self.点击记录 == False:
  117. self.点击记录 = True
  118. time.sleep(0.2)
  119. self.点击记录 = False
  120. print('被鼠标左键单击')
  121. else:
  122. self.点击记录 = False
  123. def 按钮1_被鼠标左键单击(self):
  124. threading.Thread(target=self.按钮1_被鼠标左键单击_线程).start()
  125. def 按钮1_被鼠标左键单击_线程(self):
  126. time.sleep(0.25)
  127. if self.点击记录 == False:
  128. self.点击记录 = True
  129. time.sleep(0.2)
  130. self.点击记录 = False
  131. print('被鼠标左键单击')
  132. else:
  133. self.点击记录 = False
  134. if __name__ == '__main__':
  135. root = tk.Tk()
  136. app = 启动窗口(root)
  137. root.mainloop()