Advertisement
al33kappa

Untitled

Jun 13th, 2018
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.58 KB | None | 0 0
  1. from tkinter import *
  2. from tkinter import messagebox
  3. root = Tk()
  4. names = ["№","Наименование","Срок хранения","Страна","Цена","В наличии"]
  5. root.title("Продукты в магазине")
  6. root.geometry("800x600")
  7. lastrow = 0
  8. a = []
  9. massiv_nomera = []
  10. present_row = 0
  11. massiv_a = []
  12. indeks_intselect = 0
  13. kolvo_yacheek = 0
  14. MyFile = "qwer.txt"
  15. def defaultcells():
  16. global lastrow
  17. a=[]
  18. for i in range(6):
  19. b = Entry(root)
  20. b.grid(row=lastrow, column=i)
  21. a.append(b)
  22. lastrow += 1
  23. massiv_a.append(a)
  24. a[0].configure(width = 3)
  25. a[1].configure(width=20)
  26. a[2].configure(width=20)
  27. a[3].configure(width=20)
  28. a[4].configure(width=20)
  29. a[5].configure(width=20)
  30. for i in range(6):
  31. a[i].insert(END,names[i])
  32. a[i].configure(readonlybackground='white',state='readonly')
  33. print('lastrow + ' + str(lastrow))
  34. kontent = []
  35. def addcells():
  36. global kolvo_yacheek,massiv_a,lastrow,a
  37. c=[]
  38. if lastrow==13:
  39. btnAdd.configure(state=DISABLED)
  40. for i in range(6):
  41. if i==0:
  42. b = Entry(root,width=massiv_a[0][i]['width'])
  43. b.insert(END,kolvo_yacheek+1)
  44. # b.bind("<Button-1>", lambda event, i=i: show_row(event, nomer_row))
  45. b.grid(row=lastrow, column=i)
  46. massiv_nomera.append(b)
  47. else:
  48. b = Entry(root,width = massiv_a[0][i]['width'],readonlybackground='white',state='readonly')
  49. b.grid(row=lastrow, column=i)
  50. c.append(b)
  51.  
  52.  
  53. print("last1: "+str(lastrow))
  54. massiv_a.append(c)
  55. lastrow += 1
  56. for i in range(lastrow):
  57. if i ==0:
  58. pass
  59. else:
  60. massiv_a[i][0].bind("<Button-1>", lambda event, i=i: show_row(event, i))
  61. massiv_a[i][1].bind("<Button-1>", lambda event, i=i: show_row(event, i))
  62. massiv_a[i][2].bind("<Button-1>", lambda event, i=i: show_row(event, i))
  63. massiv_a[i][3].bind("<Button-1>", lambda event, i=i: show_row(event, i))
  64. massiv_a[i][4].bind("<Button-1>", lambda event, i=i: show_row(event, i))
  65.  
  66.  
  67.  
  68. print("last2: " + str(lastrow))
  69. EnableAll()
  70. txt_list[0].focus()
  71. txt_list[-1].configure(readonlybackground='white',state='readonly')
  72. btnCopy.configure(state=NORMAL)
  73. btnAdd.configure(state=DISABLED)
  74. print("lastrow: " + str(lastrow))
  75. kolvo_yacheek+=1
  76. print("kolvo_yacheek: "+str(kolvo_yacheek))
  77. clearAll()
  78.  
  79. defaultcells()
  80.  
  81. def quit():
  82. root.destroy()
  83.  
  84. intS = 1
  85. intF = 0
  86.  
  87. def copy():
  88. global intF,txt_list,intS
  89. print("intF: "+str(intF))
  90. if (len(txt_list[0].get())==0 or len(txt_list[1].get())==0 or len(txt_list[2].get())==0 or len(txt_list[3].get())==0 or len(txt_list[4].get())==0):
  91. EnableAll()
  92. txt_list[0].focus()
  93. messagebox.showerror("Ошибка","Заполните все поля")
  94. return
  95. else:
  96. for i in range(5):
  97. massiv_a[intS][intF].configure(state=NORMAL)
  98. massiv_a[intS][intF].insert(END,txt_list[i].get())
  99. massiv_a[intS][intF].configure(readonlybackground='white',state='readonly')
  100. print("intF: " + str(intF))
  101. intF+=1
  102. btnAdd.configure(state=NORMAL)
  103. btnCopy.configure(state=DISABLED)
  104. clearAll()
  105. disableAll()
  106. intF = 0#индекс 0 - первый после номера
  107. print("intS1: "+str(intS))
  108. intS +=1
  109. print("intS2: " + str(intS))
  110. def EnableAll():
  111. for i in range(len(txt_list)):
  112. txt_list[i].configure(readonlybackground='white', state=NORMAL)
  113.  
  114. def clearAll():
  115. for i in range(len(txt_list)):
  116. txt_list[i].delete(0, END)
  117.  
  118. def disableAll():
  119. for i in range(len(txt_list)):
  120. txt_list[i].configure(readonlybackground='white',state='readonly')
  121. txt_list[-1].configure(disabledbackground = 'white',state=DISABLED)
  122. def show_row(event,number):
  123. global present_row
  124. print("numberclick: " + str(number))
  125. past_row = present_row
  126. present_row = number
  127. EnableAll()
  128. clearAll()
  129. for i in range(len(txt_list)):
  130. txt_list[i].insert(END,massiv_a[number][i].get())
  131. massiv_nomera[number-1].configure(state=NORMAL)
  132. if massiv_nomera[past_row-1].cget("readonlybackground")=='lightgreen':
  133. massiv_nomera[past_row-1].config(readonlybackground = 'white')#,state='readonly')
  134. print("выполнилось")
  135. massiv_nomera[number-1].configure(readonlybackground = 'lightgreen')
  136. massiv_nomera[number-1].config(state='readonly')
  137. disableAll()
  138.  
  139. def write_to_file():
  140. global MyFile
  141. fule = open(MyFile,"w",encoding='utf-8')
  142.  
  143.  
  144. btnAdd = Button(text="Добавить",command = addcells,width = 10,font="Arial 12")
  145. btnAdd.place(x = 680,y=70)
  146. btnCopy = Button(text="Записать",width = 10,command = copy,font="Arial 12")
  147. btnCopy.place(x=680,y=110)
  148. btnCreate= Button(text="Создать",width= 10,font="Arial 12")
  149. btnCreate.place(x=680,y=150)
  150. btnSave = Button(text="Сохранить",width= 10,font="Arial 12")
  151. btnSave.place(x=680,y=190)
  152. btnDelete = Button(text="Удалить",width= 10,font="Arial 12")
  153. btnDelete.place(x=680,y=230)
  154. btnExit = Button(text="Выход",width=10,command = quit,font="Arial 12")
  155. btnExit.place(x=680,y=380)
  156. "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
  157. FamTxt= Entry()
  158. FamTxt.place(x=120,y=400)
  159. SrokTxt = Entry()
  160. SrokTxt.place(x=120,y=450)
  161. CountryTxt = Entry()
  162. CountryTxt.place(x=420,y=400)
  163. PriceTxt = Entry()
  164. PriceTxt.place(x=420,y=450)
  165. "|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||0||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
  166. lblFam = Label(text="Наименование: ",font="Arial 12")
  167. lblFam.place(x=0,y=395)
  168. lblSro = Label(text="Срок хранения: ", font = "Arial 12")
  169. lblSro.place(x=0,y=445)
  170. lblCountry = Label(text="Страна: ",font = "Arial 12")
  171. lblCountry.place(x=350,y=395)
  172. lblPrice = Label(text="Цена: ",font = "Arial 12")
  173. lblPrice.place(x=365,y=445)
  174. "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||"
  175. myspinbox = Spinbox(values=("Имеется","Не имеется"))
  176. txt_list = [FamTxt,SrokTxt,CountryTxt,PriceTxt,myspinbox]
  177. myspinbox.place(x=350,y=500)
  178. disableAll()
  179. btnCopy.configure(state=DISABLED)
  180. root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement