-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathQtGui.py
68 lines (56 loc) · 2.27 KB
/
QtGui.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
from PyQt5 import QtWidgets, uic
from blockchain import get_all_blocks, create_new_block, mine
class GUI:
dlg = 1
def __init__(self):
app = QtWidgets.QApplication([])
self.dlg = uic.loadUi('ui.ui')
self.dlg.ViewButton.clicked.connect(lambda: self.view_file())
self.dlg.mainTab.currentChanged.connect(self.update_listbox)
self.dlg.MineButton.clicked.connect(lambda: self.mine_pressed())
self.dlg.AddButton.clicked.connect(self.add_block)
# dlg.DecompressIt.clicked.connect(decomp)
# dlg.browseToDesDirectory.clicked.connect(dir_to_save)
self.dlg.show()
self.update_listbox()
app.exec()
def view_file(self):
self.dlg.BlockDetail.setStyleSheet('color: black')
f = self.dlg.BlocksList.currentItem().text()
file_name = "blocks/" + f + ".txt"
file = open(file_name, "r")
if file_name == 'blocks/block 1.txt':
content = file.readlines()
else:
content = file.readlines()[1:]
file.close()
tex = ''
for i in content:
tex += i
self.dlg.BlockDetail.setText(tex)
def create_file(self, sender, receiver, mes):
create_new_block(sender, receiver, mes)
# messagebox.showinfo("success", "new block created!")
def mine_pressed(self):
res_list = mine()
if res_list[0]:
self.dlg.BlockDetail.setText(
"Success\n" + "All documents are secure!\nYou mine " + str(res_list[1] // 5 + 1) + " coin(s)")
self.dlg.BlockDetail.setStyleSheet('color: black')
else:
self.dlg.BlockDetail.setText(
"Danger\n" + "Some documents are damaged!\nYou mine " + str(res_list[1] // 5 + 1) + " coin(s)")
self.dlg.BlockDetail.setStyleSheet('color: red')
def update_listbox(self):
path = "blocks/"
file_list = get_all_blocks(path)
ls = []
for i in file_list:
ls.append(i.split('.')[0])
self.dlg.BlocksList.clear()
self.dlg.BlocksList.addItems(ls)
def add_block(self):
self.create_file(self.dlg.SenderEdit.text(),
self.dlg.RecieverEdit.text(),
self.dlg.MessageEdit.toPlainText())
g = GUI()