Skip to content

Commit 3ed85bb

Browse files
committed
新增了对管理单片机内文件夹的支持
1 parent cf14e03 commit 3ed85bb

3 files changed

Lines changed: 178 additions & 72 deletions

File tree

Serial_Core.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,11 @@
88
css = '<style type="text/css"> .r { color: #FF0000 } .g { color: #00FF00}</style>'
99

1010
def deal_files(input_bytes:bytes)->list:
11+
"""将读取到的单片机文件信息转换为列表"""
1112
files = input_bytes.split(b"\n")
1213
out = []
1314
for i in files:
14-
if i :
15+
if i:
1516
out.append(i.split()[1])
1617
return out
1718

@@ -100,13 +101,13 @@ def open_port(self, port:str):
100101
self.port_erro_signal.emit(str(e))
101102
self.fresh_signal.emit(files)
102103

103-
def fresh_files(self):
104+
def fresh_files(self, path:str=""):
104105
"""刷新串口内容的内部文件"""
105106
files = []
106107
try:
107108
if self.pyb is not None:
108109
self.pyb.enter_raw_repl()
109-
files = deal_files(self.pyb.fs_ls("", False))
110+
files = deal_files(self.pyb.fs_ls(path, False))
110111
self.pyb.exit_raw_repl()
111112
except Exception as e:
112113
self.port_erro_signal.emit(str(e))

codeEditor.py

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import threading
22
import time
33
from PySide6.QtCore import Qt, QRect, QSize, QMetaObject, QCoreApplication, Signal
4-
from PySide6.QtWidgets import QWidget, QTextEdit, QPlainTextEdit, QTextEdit, QDialog, QGridLayout
5-
from PySide6.QtGui import QColor, QPainter, QTextFormat, QShortcut, QIcon
4+
from PySide6.QtWidgets import QWidget, QTextEdit, QPlainTextEdit, QTextEdit, QDialog, QGridLayout, QLineEdit
5+
from PySide6.QtGui import QColor, QPainter, QTextFormat, QShortcut, QIcon, QCursor
6+
67
from pygments import highlight
78
from pygments.lexers import Python3Lexer
89
from pygments.formatters import HtmlFormatter
@@ -126,7 +127,7 @@ def codeHighlight(self):
126127
curs.select(curs.LineUnderCursor)
127128
curs.deleteChar()
128129
curs.insertHtml(f'<style type="text/css">{self.css}</style>{out}'[:-2])
129-
print(f'<style type="text/css">{self.css}</style>{out}'[:-1])
130+
# print(f'<style type="text/css">{self.css}</style>{out}'[:-1])
130131
curs.setPosition(oldPos)
131132
self.setTextCursor(curs)
132133
self.textChanged.connect(self.codeHighlight)
@@ -229,6 +230,29 @@ def open_file(fName:str):
229230
codeEditor.QCodeEditor.saveFile()
230231
return f"File \"{fName}\" saved"
231232

233+
234+
def get_user_rename(default_text:str="")->str:
235+
"""弹出一个小窗口, 让用户输入字符, 并返回这个字符"""
236+
redialog = QDialog()
237+
shortcut = QShortcut(redialog)
238+
shortcut.setKey(u'Return')
239+
shortcut.activated.connect(lambda: redialog.close())
240+
shortcut2 = QShortcut(redialog)
241+
shortcut2.setKey(u'Enter')
242+
shortcut2.activated.connect(lambda: redialog.close())
243+
gridLayout = QGridLayout(redialog)
244+
gridLayout.setSpacing(0)
245+
gridLayout.setObjectName(u"gridLayout")
246+
gridLayout.setContentsMargins(0, 0, 0, 0)
247+
redialog.setWindowFlag(Qt.FramelessWindowHint)
248+
redialog.move(QCursor.pos())
249+
Lin = QLineEdit(redialog)
250+
Lin.setText(default_text)
251+
gridLayout.addWidget(Lin, 0, 0, 1, 1)
252+
Lin.selectAll()
253+
redialog.exec()
254+
return Lin.text()
255+
232256
if __name__ == '__main__':
233257
import sys
234258
from PySide6.QtWidgets import QApplication

0 commit comments

Comments
 (0)