-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.py
53 lines (43 loc) · 1.64 KB
/
main.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
import sys
import gptcmt
from PyQt5.QtWidgets import *
from PyQt5.QtCore import QFile, QTextStream
from PyQt5 import uic
form_class = uic.loadUiType("HelloWorld.ui")[0]
class MyApp(QMainWindow, form_class):
def __init__(self):
super().__init__()
self.setupUi(self)
# 파일 트리 생성
self.model = QFileSystemModel()
self.model.setRootPath('')
self.treeView.setModel(self.model)
self.treeView.setRootIndex(self.model.index('')) # 전체 파일 시스템을 보여주기 위해 루트 인덱스 설정
self.treeView.setColumnWidth(0, 250) # 열 너비 조정
# 버튼과 연결
self.btn_cmt.clicked.connect(self.printCommentingCode)
# 파일 선택 이벤트 연결
self.treeView.selectionModel().selectionChanged.connect(self.loadFileContent)
def loadFileContent(self):
selected_index = self.treeView.selectedIndexes()[0]
file_path = self.model.filePath(selected_index)
if QFile.exists(file_path):
file = QFile(file_path)
file.open(QFile.ReadOnly | QFile.Text)
stream = QTextStream(file)
content = stream.readAll()
self.code_before.setPlainText(content)
file.close()
def printCommentingCode(self):
txt = self.code_before.toPlainText()
if txt != "":
cmtcode = gptcmt.generate_comment(txt)
self.code_cmt.setPlainText(cmtcode)
else:
pass
if __name__ == '__main__':
app = QApplication(sys.argv)
app.setApplicationName('코드에 주석 달기')
ex = MyApp()
ex.show()
sys.exit(app.exec())