当前位置: 首页 > wzjs >正文

怎么在虚拟空间做两个网站百度账号快速注册入口

怎么在虚拟空间做两个网站,百度账号快速注册入口,网站建设的流程是什么,给女朋友做的网站内容基于python与pyqt实现的一个简单的文本编辑器。 主要功能为文件的操作:打开文件,新建文件,保存与退出, 编辑功能主要为:粘贴,剪切,复制,以及查找功能 关于字数统计,因…

基于python与pyqt实现的一个简单的文本编辑器。

主要功能为文件的操作:打开文件,新建文件,保存与退出,

编辑功能主要为:粘贴,剪切,复制,以及查找功能

关于字数统计,因为字符原因是不够准确的,正常情况下背景为白色,但是黑色更护眼,可以基于代码进行相应的一个调整。

import sys
import re
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, qApp, QStatusBar, QMenuBar, QTextEdit, QDialog, \QVBoxLayout, QLineEdit, QPushButton, QListWidget, QMessageBox, QLabel, QFileDialog
from PyQt5.QtGui import QSyntaxHighlighter, QTextCharFormat, QColor, QFont, QTextCursor, \QTextDocument  # 添加QTextDocument到导入列表
from PyQt5.QtCore import QRegularExpressionclass MyWindow(QMainWindow):def __init__(self):super().__init__()self.init_ui()def init_ui(self):self.setWindowTitle("一个黑客创业者:文本编辑器")# 设置主部件self.textEdit = QTextEdit()self.setCentralWidget(self.textEdit)# 样式设置self.textEdit.setStyleSheet("""background-color: #2d2d2d;color: #ffffff;font-size: 14px;font-family: "Consolas";""")self.syntaxHighlighter = SyntaxHighlighter(self.textEdit.document())# 状态栏self.statusBar = QStatusBar()self.setStatusBar(self.statusBar)self.statusBar.showMessage('状态栏')self.statusBar.setStyleSheet("""background-color: #3f3f3f;color: #ffffff;font-size: 12px;""")# 菜单栏menu_bar = QMenuBar()self.setMenuBar(menu_bar)menu_bar.setStyleSheet("""background-color: #3f3f3f;color: #ffffff;font-size: 14px;""")# 文件菜单file_menu = menu_bar.addMenu("文件")self.create_file = file_menu.addAction("新建")self.create_file.setShortcut('Ctrl+N')self.create_file.triggered.connect(self.newFile)self.open = file_menu.addAction("打开")self.open.setShortcut("Ctrl+O")self.open.triggered.connect(self.openFile)self.save = file_menu.addAction("保存")self.save.setShortcut("Ctrl+S")self.save.triggered.connect(self.saveFile)self.exit = file_menu.addAction("退出")self.exit.setShortcut("Ctrl+E")self.exit.triggered.connect(qApp.quit)# 编辑菜单edit_menu = menu_bar.addMenu("编辑")edit_menu.addAction("复制").triggered.connect(self.textEdit.copy)edit_menu.addAction("粘贴").triggered.connect(self.textEdit.paste)edit_menu.addAction("剪切").triggered.connect(self.textEdit.cut)# 查找菜单search_menu = menu_bar.addMenu("查找")self.find_action = search_menu.addAction("查找")self.find_action.setShortcut("Ctrl+F")self.find_action.triggered.connect(self.showFindDialog)# 字数统计标签self.word_count_label = QLabel(self)self.statusBar.addPermanentWidget(self.word_count_label)self.update_word_count()self.textEdit.textChanged.connect(self.update_word_count)def newFile(self):self.textEdit.clear()self.statusBar.showMessage('新文件')def openFile(self):fileName, _ = QFileDialog.getOpenFileName(self, '打开文件', '', '文本文件 (*.txt);;所有文件 (*)')if fileName:with open(fileName, 'r', encoding='utf-8') as file:self.textEdit.setText(file.read())self.statusBar.showMessage('打开新文件')def saveFile(self):fileName, _ = QFileDialog.getSaveFileName(self, '保存文件', '', '文本文件 (*.txt);;所有文件 (*)')if fileName:with open(fileName, 'w', encoding='utf-8') as file:file.write(self.textEdit.toPlainText())def showFindDialog(self):find_dialog = QDialog(self)find_dialog.setWindowTitle("查找")layout = QVBoxLayout(find_dialog)self.search_edit = QLineEdit(find_dialog)self.search_button = QPushButton("查找", find_dialog)self.results_list = QListWidget(find_dialog)layout.addWidget(self.search_edit)layout.addWidget(self.search_button)layout.addWidget(self.results_list)self.search_button.clicked.connect(self.performSearch)find_dialog.exec_()def performSearch(self):query = self.search_edit.text()if not query:QMessageBox.warning(self, "警告", "请输入要查找的内容")returndocument = self.textEdit.document()cursor = QTextCursor(document)found_occurrences = Falsewhile True:cursor = document.find(query, cursor,QTextDocument.FindCaseSensitively | QTextDocument.FindWholeWords)if cursor.isNull():breakfound_occurrences = Trueselection_start = cursor.selectionStart()selection_end = cursor.selectionEnd()self.highlightFoundText(selection_start, selection_end)if not found_occurrences:QMessageBox.information(self, "信息", f"未找到 '{query}'")def highlightFoundText(self, start_pos, end_pos):extra_selections = []selection_format = QTextCharFormat()selection_format.setBackground(QColor("yellow"))selection = QTextEdit.ExtraSelection()selection.format = selection_formatselection.cursor.setPosition(start_pos, QTextCursor.MoveAnchor)selection.cursor.setPosition(end_pos, QTextCursor.KeepAnchor)extra_selections.append(selection)self.textEdit.setExtraSelections(extra_selections)def update_word_count(self):text = self.textEdit.toPlainText()words = len(re.findall(r'\b\w+\b', text))self.word_count_label.setText(f'字数: {words}')class SyntaxHighlighter(QSyntaxHighlighter):def __init__(self, parent=None):super().__init__(parent)keywordFormat = QTextCharFormat()keywordFormat.setForeground(QColor("blue"))keywordFormat.setFontWeight(QFont.Bold)commentFormat = QTextCharFormat()commentFormat.setForeground(QColor("green"))commentFormat.setFontItalic(True)stringFormat = QTextCharFormat()stringFormat.setForeground(QColor("red"))stringFormat.setFontWeight(QFont.Bold)keywords = ["def", "class", "import", "from", "if", "else", "elif", "for", "while", "return", "try", "except"]self.highlightingRules = []for word in keywords:escaped_word = re.escape(word)rule = QRegularExpression(rf"\b{escaped_word}\b")self.highlightingRules.append((rule, keywordFormat))rule = QRegularExpression(r"#[^\n]*")self.highlightingRules.append((rule, commentFormat))rule = QRegularExpression(r'"([^"\\]|\\.)*"')self.highlightingRules.append((rule, stringFormat))def highlightBlock(self, text):for pattern, format in self.highlightingRules:matchIterator = pattern.globalMatch(text)while matchIterator.hasNext():match = matchIterator.next()self.setFormat(match.capturedStart(), match.capturedLength(), format)if __name__ == "__main__":app = QApplication(sys.argv)# 应用全局样式表app.setStyleSheet("""QMainWindow {background-color: #2d2d2d;}QMenuBar {background-color: #3f3f3f;color: #ffffff;font-size: 14px;}QStatusBar {background-color: #3f3f3f;color: #ffffff;font-size: 12px;}QTextEdit {background-color: #2d2d2d;color: #ffffff;font-size: 14px;font-family: "Consolas";}QPushButton {background-color: #3f3f3f;color: #ffffff;border: 1px solid #2d2d2d;padding: 5px;font-size: 12px;}QLineEdit {background-color: #2d2d2d;color: #ffffff;border: 1px solid #2d2d2d;padding: 3px;font-size: 12px;}QListWidget {background-color: #2d2d2d;color: #ffffff;font-size: 12px;}""")w = MyWindow()w.resize(600, 400)w.show()sys.exit(app.exec_())

http://www.dtcms.com/wzjs/497123.html

相关文章:

  • 四川住房和城乡建设厅网站不能进入广州seo推广
  • 网站建站的尺寸专业网店推广
  • 做影视网站难吗seo网站推广专员招聘
  • 公益事业做网站线上推广方案
  • 西宁网站建设公司排名软件
  • 用dedecms做的网站百度搜索引擎推广收费标准
  • 备案的网站必须打开吗苏州seo关键词排名
  • 电商网站设计方法百度入口提交
  • 一个用户注册的网站怎么做福州seo公司
  • 校园二手书交易网站开发整合营销传播工具有哪些
  • 电信宽带做网站服务器吗企业网站有什么
  • 甘肃省第八建设集团公司网站批量关键词排名查询工具
  • 旅游网站首页制作品牌传播策略
  • 实体行业做分销网站有什么好处网络营销教案ppt
  • 做网站niche西安seo网站管理
  • 专业做二手房的网站有哪些今天时政新闻热点是什么
  • 网站流量导入是什么意思seo怎么做优化工作
  • 活动网站建设专业网站建设公司
  • 小型视频网站建设如何推广平台
  • 陕西省住房和城乡建设厅官方网站在线智能识图
  • 如何赌博网站做代理百度网盘网页版
  • 南昌专业网站优化推广百度法务部联系方式
  • 网站建设经费保障属于b2b的网站有哪些
  • 网站域名备案 更改吗seo是什么
  • 集团网站建设特点 互联网课堂祁阳seo
  • 免费做章子的网站北京seo公司助力网络营销
  • 做h5找图网站大数据培训包就业靠谱吗
  • 快速做自适应网站最佳的资源搜索引擎
  • 建零售网站还是聚名网域名注册
  • 做衣服接订单的网站片多多可以免费看电视剧吗