llllllllllllllCC
Horse861 5 months ago
parent 3f0ae5507b
commit 06e563bb22

8
.idea/.gitignore vendored

@ -0,0 +1,8 @@
# 默认忽略的文件
/shelf/
/workspace.xml
# 基于编辑器的 HTTP 客户端请求
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.venv" />
</content>
<orderEntry type="jdk" jdkName="Python 3.13 (Curriculum_Design)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Black">
<option name="sdkName" value="Python 3.13 (Curriculum_Design)" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.13 (Curriculum_Design)" project-jdk-type="Python SDK" />
</project>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/Curriculum_Design.iml" filepath="$PROJECT_DIR$/.idea/Curriculum_Design.iml" />
</modules>
</component>
</project>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

@ -0,0 +1,124 @@
import sys
import os
from PyQt5.QtWidgets import (QApplication, QMainWindow, QTextEdit, QAction,
QFileDialog, QVBoxLayout, QWidget, QLabel, QStatusBar)
from PyQt5.QtGui import QFont, QTextCursor
from PyQt5.QtCore import Qt
class WordDemo(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
self.file_content = ""
self.current_position = 0
def initUI(self):
# 设置窗口标题和大小
self.setWindowTitle('Word Demo - 打字显示TXT内容')
self.setGeometry(100, 100, 800, 600)
# 创建中央部件和布局
central_widget = QWidget()
self.setCentralWidget(central_widget)
layout = QVBoxLayout(central_widget)
# 创建状态栏
self.statusBar = QStatusBar()
self.setStatusBar(self.statusBar)
self.status_label = QLabel("就绪")
self.statusBar.addWidget(self.status_label)
# 创建文本编辑器
self.text_edit = QTextEdit()
self.text_edit.setFont(QFont("Arial", 12))
self.text_edit.textChanged.connect(self.on_text_changed)
layout.addWidget(self.text_edit)
# 创建菜单栏
menubar = self.menuBar()
file_menu = menubar.addMenu('文件')
# 添加打开文件动作
open_action = QAction('打开', self)
open_action.setShortcut('Ctrl+O')
open_action.triggered.connect(self.open_file)
file_menu.addAction(open_action)
# 添加退出动作
exit_action = QAction('退出', self)
exit_action.setShortcut('Ctrl+Q')
exit_action.triggered.connect(self.close)
file_menu.addAction(exit_action)
# 显示界面
self.show()
def open_file(self):
# 打开文件对话框
file_path, _ = QFileDialog.getOpenFileName(
self, "打开文本文件", "", "文本文件 (*.txt);;所有文件 (*)")
if file_path:
try:
# 读取文件内容
with open(file_path, 'r', encoding='utf-8') as file:
self.file_content = file.read()
# 重置状态
self.current_position = 0
self.text_edit.clear()
# 更新状态栏
file_name = os.path.basename(file_path)
self.status_label.setText(f"已加载文件: {file_name} - 共 {len(self.file_content)} 字符")
except Exception as e:
self.status_label.setText(f"错误: {str(e)}")
def on_text_changed(self):
# 获取当前文本长度
current_text = self.text_edit.toPlainText()
text_length = len(current_text)
# 如果文本长度增加
if text_length > self.current_position:
# 计算需要显示的新字符数
new_chars_count = text_length - self.current_position
# 确保不超过文件内容长度
if self.current_position + new_chars_count <= len(self.file_content):
# 获取当前光标位置
cursor = self.text_edit.textCursor()
cursor_pos = cursor.position()
# 替换用户输入的内容为文件内容
new_text = self.file_content[:text_length]
self.text_edit.blockSignals(True) # 暂时阻塞信号防止递归调用
self.text_edit.setPlainText(new_text)
# 恢复光标位置
cursor.setPosition(cursor_pos)
self.text_edit.setTextCursor(cursor)
self.text_edit.blockSignals(False) # 解除信号阻塞
# 更新当前位置
self.current_position = text_length
# 更新状态栏
self.status_label.setText(f"已输入: {text_length}/{len(self.file_content)} 字符")
else:
# 如果超出文件内容长度,阻止继续输入
self.text_edit.blockSignals(True)
self.text_edit.setPlainText(self.file_content)
self.text_edit.blockSignals(False)
self.status_label.setText("已到达文件末尾")
# 如果文本长度减少(用户删除内容)
elif text_length < self.current_position:
self.current_position = text_length
self.status_label.setText(f"已输入: {text_length}/{len(self.file_content)} 字符")
if __name__ == '__main__':
app = QApplication(sys.argv)
demo = WordDemo()
sys.exit(app.exec_())

@ -0,0 +1,47 @@
## 《机械之心》第一章 陆冲的觉醒
刺眼的阳光透过防弹玻璃照射进来,陆冲眯起眼睛,抬手挡在额前。他的手腕上还戴着特制的镣铐,这是专门为异能者设计的,能抑制他们的特殊能力。
"编号A-017请到3号检测室。"冰冷的机械女声在走廊里回荡。
陆冲站起身,镣铐发出清脆的碰撞声。他能感觉到周围其他实验体投来的目光,有怜悯,有恐惧,还有幸灾乐祸。在这个地下实验室里,他们不过是一群待宰的羔羊。
3号检测室的门在身后关上陆冲被固定在检测台上。他闭上眼睛感受着仪器在皮肤上游走。突然一阵剧痛从太阳穴传来他的意识开始模糊。
"滴滴滴——"刺耳的警报声响起。
"实验体A-017出现异常反应"研究员的声音里带着惊恐。
陆冲猛地睁开眼睛,瞳孔中闪过一丝银光。他的身体开始颤抖,镣铐发出不堪重负的呻吟。他能感觉到,某种沉睡已久的力量正在苏醒。
"快!注射镇定剂!"
针头刺入皮肤的瞬间,陆冲发出一声低吼。他感觉体内有什么东西在沸腾,在燃烧。记忆如潮水般涌来,他看到了漫天飞舞的机械鸟群,看到了钢铁铸就的摩天大楼,看到了自己站在高耸入云的塔顶,俯视着这座被机械统治的城市。
"砰!"镣铐应声而断。
研究员们惊恐地向后退去,陆冲缓缓站起身。他的皮肤下浮现出银色的纹路,那是机械与血肉完美融合的证明。他能听到整个实验室的机械运转声,能感受到每一台设备的脉动。
"拦住他!"
安保人员冲了进来,手中的电击枪闪烁着蓝光。陆冲抬起手,电击枪突然失控,电流反向流窜,安保人员抽搐着倒下。他轻轻一挥手,实验室的门锁自动开启。
警报声在整个实验室回荡,红色的警示灯将走廊染成血色。陆冲大步向前,所过之处,所有的电子设备都陷入瘫痪。他能感觉到,自己就是这座钢铁牢笼的主宰。
"砰!"一声枪响。
子弹擦着陆冲的脸颊飞过,在他身后的墙上留下一个焦黑的弹孔。他转过身,看到一个穿着白大褂的中年男人举着手枪,手在微微发抖。
"陆冲,你不能走。"男人的声音里带着颤抖,"你是我们最成功的实验体,你体内流淌着最完美的机械之血。"
陆冲冷笑一声:"完美?你们把我改造成怪物,就为了这个?"
"你不是怪物!"男人激动地说,"你是机械与人类完美融合的产物,你是新人类的希望!"
"希望?"陆冲抬起手,男人手中的枪突然扭曲变形,"我的希望就是摧毁这个实验室,摧毁所有像你们这样的人。"
男人还想说什么,但陆冲已经转身离去。他的身影在走廊尽头消失,只留下满地狼藉和此起彼伏的警报声。
实验室外,陆冲站在高耸的围墙下。他仰起头,看着头顶的星空。这座城市依然灯火通明,机械鸟群在空中盘旋,钢铁巨兽在街道上穿梭。但这一切,都将因他的觉醒而改变。
他闭上眼睛,感受着体内澎湃的力量。机械之心在胸腔中跳动,发出规律的嗡鸣。这不是终结,而是开始。属于陆冲的时代,才刚刚拉开序幕。
Loading…
Cancel
Save