![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
文章平均质量分 53
InCodeWeTrust
记录在编程时,遇到问题的解决方法
展开
-
python代码:如何控制一个exe程序只能执行一次
None, "程序已经运行.....", "警告", 0x40 | 0x1, 0, 1000。请确保在使用互斥体名称时,使用全局唯一的名称,以避免与其他应用程序冲突。print("程序已经在运行.")print("程序启动中...")# 在这里执行你的应用程序代码。# 检查互斥体是否已经存在。原创 2023-12-10 09:22:12 · 488 阅读 · 0 评论 -
pyqt5 如何读出剪贴板里的内容
这个示例创建了一个简单的PyQt5窗口,包括一个文本编辑器和一个按钮。当你点击按钮时,它会从剪贴板中读取文本内容并将其显示在文本编辑器中。self.button = QPushButton("读取剪贴板内容", self)确保你已经安装了PyQt5库,然后运行这个代码,就可以看到窗口并测试读取剪贴板的功能。window.setWindowTitle('读取剪贴板内容')要在PyQt5中读取剪贴板里的内容,你可以使用。原创 2023-09-06 10:18:25 · 332 阅读 · 0 评论 -
PYQt5 设置toolbar 里面的Action 的位置, 如何将一个按钮放在最右边?
请注意,您可以根据自己的需求添加更多的 Action 和伸缩空间来调整工具栏上各个元素的位置。),然后将其设置为伸缩的拉伸项(stretchable space),以便将后续的 Action 推到最右边。,然后添加了左侧的 Action 和右侧的 Action。在 PyQt5 中设置工具栏(Toolbar)中 Action 的位置,可以使用。# 添加右侧的伸缩空间,将后续的 Action 推到最右边。方法来添加一个占位符控件(例如,一个空的。,这会将后续的 Action 推到最右边。原创 2023-09-06 09:32:35 · 817 阅读 · 0 评论 -
pyqt5 qtreewidget 修改偶数行的背景色
在上面的示例中,我们使用循环遍历每个列并为偶数行的每一列设置了相同的背景色。你可以根据需要更改背景色,也可以在循环中设置不同的颜色。# 设置偶数行的每一列的背景色。# 添加一些示例数据。原创 2023-09-05 22:52:12 · 427 阅读 · 0 评论 -
pyqt5 QTreeWidget 如何调整行的高度和字体的大小?
item1.setSizeHint(0, QSize(0, 30)) # 调整第一行的高度为30像素。方法来调整行的高度。这个方法接受一个 QSize 对象作为参数,用于指定行的高度。这两个示例分别演示了如何调整行的高度和字体的大小。你可以根据自己的需求进一步自定义字体样式和行高。你可以使用 QFont 设置 QTreeWidgetItem 中文本的字体大小。font.setPointSize(16) # 设置字体大小为16像素。你可以使用 QTreeWidgetItem 的。原创 2023-09-05 22:36:03 · 1570 阅读 · 0 评论 -
pyqt5 QlineEdit 如何设置只能输入数字
你可以根据需要对验证器进行定制,以便限制输入的数字范围等。同样的方法也可以用于。在 PyQt(Python中的一个GUI库)中,可以使用。下面是一个示例代码,展示如何设置只能输入数字的。这将确保用户只能输入整数值。# 创建一个整数验证器。方法来限制用户输入的内容。在这个示例中,我们创建了一个。,如果你需要允许输入浮点数。只能输入数字,你可以使用。小部件,并为其设置了一个。方法中,我们创建了一个。原创 2023-08-18 22:12:32 · 2506 阅读 · 0 评论 -
pyqt5 如何修改QplainTextEdit 背景色和主窗口的一样颜色
请注意,由于窗口背景颜色可能会受到操作系统和系统主题的影响,因此实际显示的颜色可能会有所不同。通过使用窗口的背景颜色作为基准,您可以确保。# 设置 QPlainTextEdit 的背景颜色与窗口背景颜色相同。的背景颜色设置为与窗口背景相似的灰色,您可以使用窗口的背景颜色作为基准来设置。# 创建 QPlainTextEdit 控件。来获取窗口的背景颜色。然后,我们将这个颜色应用到。的样式表中,从而使其背景颜色与窗口的背景颜色相同。# 获取窗口背景颜色。的背景颜色与窗口背景相一致。在上述代码中,我们使用了。原创 2023-08-18 20:54:51 · 708 阅读 · 0 评论 -
python 条件编译如何写
在Python中,条件编译通常是通过预处理指令来实现的。与其他编程语言不同,Python没有像C或C++那样的预处理器,但您可以使用一些技巧来模拟条件编译的效果。变量用于控制是否编译调试相关的代码块。,那么调试代码块就会被编译执行,否则将被忽略。# 根据条件变量的值,确定是否编译特定代码块。# 这里可以放置其他调试相关的代码。# 定义一个条件变量,用于控制编译。# 调试时执行的代码。# 其他非调试相关的代码。原创 2023-08-16 22:53:09 · 342 阅读 · 0 评论 -
pyqt5 编写一段自定义信号和槽的示例。
方法,我们将自定义信号连接到槽函数。当按钮被点击时,会发射自定义信号,并触发槽函数的调用,从而在控制台上打印接收到的消息。的类来作为信号的源。使用 PyQt5 创建自定义信号和槽时,通常需要创建一个继承自。# 定义一个槽函数,接受一个字符串参数,并在控制台打印。# 发射自定义信号,传递消息作为参数。# 定义一个自定义信号,参数为一个字符串。在这个示例中,我们定义了一个自定义信号。然后,我们创建了一个槽函数。,它会在接收到信号时被调用。# 将自定义信号连接到槽函数。原创 2023-08-08 22:00:20 · 230 阅读 · 0 评论 -
pyqt5 信号和槽的简单示例。
在 initUI 方法中,我们设置了窗口的大小和标题,并创建了一个按钮。这里是一个简单的 PyQt5 信号和槽的示例。在这个示例中,我们将创建一个简单的窗口,其中包含一个按钮。当按钮被点击时,它将发出一个信号,然后与之关联的槽函数将被调用。运行这个示例代码,你会看到一个窗口和一个按钮。这就是一个简单的 PyQt5 信号和槽的示例。你可以根据自己的需求扩展和修改这个示例,以适应更复杂的应用程序。当按钮被点击时,槽函数将会被调用,然后输出 "Button clicked!信号连接按钮的点击事件和自定义的。原创 2023-08-08 20:32:07 · 199 阅读 · 0 评论 -
pyqt5 QWidget 如何隐藏右上角的关闭和提示按钮
在 PyQt5 中,隐藏 QWidget 右上角的关闭按钮(也称为窗口关闭按钮)可以通过修改窗口的窗口标志位(WindowFlags)来实现。# 设置窗口标志位,去除关闭按钮。# 设置其他窗口属性(可选)原创 2023-08-08 01:21:38 · 2388 阅读 · 1 评论 -
pyqt5 如何终止正在执行的线程?
在这个示例中,我们创建了一个继承自 QThread 的 WorkerThread 类,并在其中定义了一个 is_running 标志位,默认为 True。run() 方法是线程的执行函数,它在 while 循环中执行一些任务,并且在每次循环之间会暂停一秒钟。点击 "Stop Thread" 按钮时,会调用线程的 stop() 方法,将 is_running 设置为 False,从而终止线程的执行。在实际应用中,你可能需要在线程执行任务的地方定期检查标志位,以便在合适的时机终止线程的执行。原创 2023-08-08 00:07:25 · 2824 阅读 · 0 评论 -
pyqt5 如何读取qcombobox 的全部项
中添加了四个项,并且在控制台输出中显示了所有项的文本。方法用于获取指定索引位置的项的文本。以下是一个示例代码,展示如何读取。在 PyQt5 中,可以使用。运行这个示例代码,你将看到在。原创 2023-08-08 00:05:30 · 2238 阅读 · 0 评论 -
pyqt5, 如何在窗口上显示10个点地循环进度条。
要在PyQt5窗口上显示从1个点逐渐增加到10个点,然后周而复始地循环,可以使用PyQt5的图形绘制功能和定时器来实现。定时器的时间间隔可以根据您的需求进行调整,以控制点的增加和减少速度。这只是一个简单的例子,您可以根据您的实际需求进行进一步的定制。原创 2023-08-04 22:20:03 · 271 阅读 · 0 评论 -
pyqt5 如何在窗口上实现圆形进度条
运行这个代码,你将会看到一个带有圆形进度条的窗口显示出来,进度条会以每秒钟增加1%的速度更新。self._timer.start(100) # 设置更新间隔为100ms。# 将百分比转换为角度,并确保结果为整数。原创 2023-08-04 22:18:04 · 601 阅读 · 0 评论 -
flask 搭建的网站,前端网页如何将两个过滤器嵌套使用?
在使用Flask搭建的网站中,前端网页可以使用两个或多个过滤器并嵌套使用。过滤器在Jinja2模板引擎中起到对变量进行处理和格式化的作用。下面我将介绍如何在前端网页中使用两个过滤器,并嵌套使用它们。注意:在实际使用中,过滤器的功能可以根据你的需求进行任意定制,上述示例只是一个简单的演示。确保在定义过滤器时,函数的输入参数和返回值符合你的需求。在实际使用中,你需要在Flask应用程序中定义这两个过滤器。的Flask实例,然后在前端网页中使用Jinja2模板引擎来渲染页面。在上面的代码中,我们使用了。原创 2023-07-22 15:21:32 · 107 阅读 · 0 评论 -
flask 搭建的网站,前端网页用{% for x in range(0, 100) %} 进行循环显示数据,中间要增加一个累计的变量,如何写代码?
在使用 Flask 搭建的网站中,你可以在前端网页中使用 Jinja2 模板引擎的语法来实现循环显示数据,并增加一个累计的变量。在 Jinja2 中,可以使用。注意:在实际的 Flask 应用中,你需要将上述的模板代码嵌入到真正的 Flask 视图函数中,并将数据传递给模板进行渲染。是包含了 100 个数据的列表。在循环过程中,我们使用。的变量,并将其初始化为 0。变量将包含所有数据项的累计和,并且你可以通过。来累计每个数据项的值到。来在页面上显示这个总和。来进行循环,同时使用。这样,在循环结束后,原创 2023-07-22 14:35:26 · 256 阅读 · 0 评论 -
flask搭建的网站,域名指向目录/root/mysite, 如果文件存在其他目录,如:/var/home,前端网页的下载链接要如何链接到/var/home目录?
替换为你实际要下载的文件名。你可以将此代码添加到你的Flask应用中,并根据需要进行修改和适应。filename = 'your_file_name.ext' # 你要下载的文件名。目录,你可以在Flask应用中创建一个路由,用于处理该链接。函数将以附件形式发送该文件,允许用户下载。否则,将返回一个简单的消息指示文件不存在。# 检查文件是否存在于/var/home目录。return "文件不存在"在上述代码中,我们定义了一个名为。时,它将检查指定的文件是否存在于。要在前端网页的下载链接中链接到。原创 2023-07-19 10:25:54 · 75 阅读 · 0 评论 -
pyqt5 python 如何删除某个目录下,指定文件名的所有文件,不论扩展名是什么
请确保在使用代码时提供正确的目录路径和文件名,并注意在操作文件系统时谨慎执行删除操作,以免意外删除重要文件。函数来遍历目录下的文件,然后使用字符串的操作来检查文件名是否与给定文件名匹配。directory = 'path/to/directory' # 要删除文件的目录。方法来检查文件名是否以给定的文件名开头,并且后面跟着一个点号。函数来检查是否是一个文件,以避免删除子目录。接下来,我们使用字符串的。file_name = 'filename' # 要删除的文件名。函数用于获取目录下的文件列表。原创 2023-07-18 21:57:31 · 369 阅读 · 0 评论 -
pyqt5 采用多线程,如何采用线程锁,避免操作冲突
(互斥锁)来实现线程锁,以避免多个线程同时访问共享资源而引发冲突。通过这种方式,你可以在使用PyQt5进行多线程编程时,确保对共享资源的访问是线程安全的,避免操作冲突。self.mutex.unlock() # 解锁互斥锁。self.mutex.lock() # 锁定互斥锁。self.mutex.lock() # 锁定互斥锁。,然后解锁互斥锁,从而确保每次只有一个线程可以执行。类的构造函数中,以确保线程锁在两个线程中共享。,然后处理接收到的数值,最后解锁互斥锁。槽函数中,我们首先锁定互斥锁。原创 2023-07-15 07:50:59 · 721 阅读 · 0 评论 -
flask 如何将读取的字符串转成网页的内容
在 Flask 中,你可以使用 Jinja2 模板引擎来将读取的字符串转换为网页的内容。Jinja2 是 Flask 默认的模板引擎,它提供了强大的模板功能,允许你在模板中插入变量、控制结构和过滤器等。# 渲染模板,并将字符串传递给模板。原创 2023-07-08 12:27:10 · 148 阅读 · 0 评论 -
pyinstaller 编译成exe文件,如何在命令行里设置参数,增加定制图标
在上面的命令中,"your_script.py"是您的PyInstaller脚本的文件名,"--onefile"参数指定生成单个可执行文件,"--icon=your_icon.ico"参数指定使用"your_icon.ico"作为应用程序的图标文件。原创 2023-06-29 11:48:06 · 686 阅读 · 0 评论 -
pyqt5 如何获得文件的扩展名?
用于获取完整的扩展名(包括多个扩展名)。您可以根据需要选择适合您的情况的方法。print(extension) # 输出扩展名,如 'txt'类来获取文件的扩展名。对象,将文件路径作为参数传递给它。类还提供了其他有用的方法和属性,例如。用于获取文件名(不包括扩展名),以及。方法获取文件的扩展名,并将其存储在。在这个例子中,我们首先创建一个。最后,我们打印扩展名。用于获取文件名(包括扩展名),在PyQt5中,您可以使用。原创 2023-06-27 23:36:56 · 443 阅读 · 0 评论 -
pyqt5 qtextedit 如何设置成不允许多行
这样设置后,QTextEdit 将不允许多行输入,文本将会水平滚动以适应窗口大小。然后我们显示了 QTextEdit 窗口,并运行应用程序。在上面的代码中,我们创建了一个 QTextEdit 对象。要将 QTextEdit 设置为不允许多行,可以使用。方法将其设置为不换行模式。方法,并将其参数设置为。原创 2023-06-27 23:29:51 · 525 阅读 · 0 评论 -
pyqt5 qtreewidget遍历所有节点
print(item.text(0)) # 打印节点的文本。# 创建一个QTreeWidget并添加一些节点。来遍历所有的节点,并打印每个节点的文本。以下是一个示例代码,演示如何遍历一个。在上面的示例中,我们首先创建了一个。提供了一种简便的方式来迭代。原创 2023-06-23 20:19:37 · 1706 阅读 · 0 评论 -
pyqt5 窗口中有一个qtreewidget列表,当鼠标拖动网页上的链接到列表上,松开鼠标,链接增加到列表中,如何实现代码?
在这个例子中,我们创建了一个MainWindow类继承自QMainWindow,其中包含一个QTreeWidget作为窗口中的列表。:在松开鼠标时被调用。我们再次检查MimeData数据中是否包含URLs,并遍历这些URLs创建QTreeWidgetItem对象,并将其添加到QTreeWidget中。要实现将网页链接拖动到PyQt5窗口中的QTreeWidget列表,并在松开鼠标时将链接添加到列表中,你需要使用PyQt5的拖放功能和事件处理机制。这是一个简单的示例,你可以根据自己的需求进一步扩展和定制化。原创 2023-06-17 21:16:11 · 164 阅读 · 0 评论 -
pyqt5 QMessageBox 弹出提示框,除了OK按钮,再增加一个自定义的按钮“访问网站”,点击它打开网页
visit_button = msg_box.addButton("访问网站", QMessageBox.ActionRole)url = "https://www.example.com" # 在这里替换为您要打开的网页地址。方法来添加自定义按钮,然后使用信号与槽机制处理按钮的点击事件。在点击"访问网站"按钮时,您可以使用。方法获取用户点击的按钮,并检查是否是"访问网站"按钮。方法将"OK"按钮设置为默认按钮。msg_box.setText("这是一个提示框")方法添加了一个自定义按钮,并将其保存在。原创 2023-06-16 08:20:58 · 736 阅读 · 0 评论 -
python 如何点击一个按钮,用默认浏览器打开网页
要在Python中点击一个按钮并用默认浏览器打开网页,你可以使用。的函数,该函数接受一个URL参数。在函数内部,我们使用。当你运行这段代码时,它将使用默认浏览器打开指定的网页。函数并传入要打开的网页的URL作为参数。# 调用函数并传入要打开的网页的URL。函数打开指定的URL。在这个例子中,我们导入了。模块,并定义了一个名为。原创 2023-06-14 22:20:57 · 939 阅读 · 0 评论 -
python给一个文件改名,如何用正则表达式去除不允许的字符?
函数将旧文件名改为新的文件名。请注意,这段代码假设你已经在合适的目录下,且文件名有效。如果文件名无效或文件不存在,可能会引发异常。因此,在使用此代码时请确保适当的错误处理。,它匹配斜杠、冒号、问号、双引号、小于号、大于号和竖线字符。你可以根据自己的需求修改正则表达式来匹配其他非法字符。要去除文件名中的不允许字符,你可以使用正则表达式来匹配并替换这些字符。函数和合适的正则表达式来替换非法字符。在这个示例中,使用的正则表达式是。# 使用正则表达式替换非法字符为空格。# 定义非法字符的正则表达式。原创 2023-06-14 19:33:23 · 883 阅读 · 0 评论 -
python 判断json的一个键值为null
在上述示例中,我们首先将JSON数据解析为Python对象,然后使用。请注意,当JSON数据被解析为Python对象时,要判断JSON对象中的一个键值是否为。在Python中,可以使用。# 判断键值是否为null。将转换为Python中的。因此,我们可以直接使用。# 示例JSON数据。# 解析JSON数据。原创 2023-06-13 02:10:18 · 3013 阅读 · 0 评论 -
flask搭建的网站,遇到404如何转到指定的网页
当遇到 Flask 应用中的 404错误时,你可以通过编写一个错误处理函数来重定向到指定的网页。return render_template('error.html') # 返回错误页面的模板。这样,当用户在访问 Flask 应用时发生 404 错误,Flask 将自动调用。你需要在项目中创建该模板,并根据自己的需求进行设计。返回一个错误页面的模板。你可以根据自己的需求来定义错误页面的模板。在函数内部,我们使用。在上面的示例中,我们首先定义了一个。路由,从而显示自定义的错误页面。# 定义错误页面的路由。原创 2023-06-06 10:16:59 · 928 阅读 · 0 评论 -
pyinstaller编译出来的exe文件,如何默认管理员身份运行
请注意,由于涉及权限提升,自动以管理员身份运行程序可能会受到用户操作系统设置的影响。此外,自动以管理员身份运行程序可能存在安全风险,请谨慎使用此功能,并确保您的程序只在必要时需要管理员权限。如果您希望在双击可执行文件本身时自动提升权限,而无需使用批处理文件,您可以尝试使用一个额外的启动器脚本来实现这一目的。您可以将生成的可执行文件(.exe文件)分发给其他用户。当双击运行该文件时,它将自动以管理员身份重新启动,并执行您的主要程序逻辑。这将生成一个单个的可执行文件,该文件包含了启动器脚本和您的主要程序逻辑。原创 2023-05-28 16:44:53 · 1010 阅读 · 1 评论 -
python pyqt5 如何添加额外的日志输出的代码,不是用print
要添加额外的日志输出,你可以使用 Python 的 logging 模块。运行应用程序后,日志消息将写入到指定的日志文件中。你可以打开日志文件查看输出的日志消息,以便在调试过程中获取更多信息。)以便捕获所有的日志消息。根据需要,你可以调整日志记录级别和输出方式(例如输出到控制台、输出到文件等)。你可以在其他部分的代码中使用类似的方法添加更多的日志输出语句。最后,我们将处理器添加到日志记录器中。希望这可以帮助你添加额外的日志输出来调试 PyQt5 应用程序。),用于将日志输出写入到一个文件中(这里使用名为。原创 2023-05-27 06:25:51 · 709 阅读 · 0 评论 -
pyqt5 如何增加qtabwidget作为容器,并获取点击tab的事件
self.tab_widget.addTab(self.tab1, "标签页1")self.tab_widget.addTab(self.tab2, "标签页2")print("当前选中的标签页索引:", current_tab_index)self.label1 = QLabel("这是标签页1")self.label2 = QLabel("这是标签页2")# 将标签页的布局设置为 QVBoxLayout。# 获取当前选中的标签页索引。# 设置标签页的布局。方法都会打印当前选中的标签页索引。原创 2023-05-23 15:19:00 · 975 阅读 · 0 评论 -
pyqt5 如何获得时间戳,两个时间戳间隔多少秒,时间戳如何转成字符串时间数据
运行代码后,你将看到输出的时间戳、时间间隔和字符串时间数据。请注意,时间戳是以秒为单位的浮点数,字符串时间数据是格式化后的时间字符串。模块来获取时间戳并进行时间操作。接着获取新的时间戳,并计算时间间隔(秒)。print("时间间隔(秒):", interval)print("时间戳1:", timestamp1)print("时间戳2:", timestamp2)函数将时间戳转换为字符串时间数据,使用。格式定义了输出的时间字符串的格式。函数获取当前的时间戳,然后使用。# 将时间戳转换为字符串时间数据。原创 2023-05-22 09:28:12 · 560 阅读 · 0 评论 -
pyqt5 QWidget 窗口的右上角问号如何隐藏?
进行按位与操作,以从窗口标志中移除问号按钮标志。然后,窗口显示时,右上角的问号按钮将被隐藏。要隐藏PyQt5中QWidget窗口的右上角问号按钮,可以使用窗口的。# 设置窗口标志,隐藏右上角问号按钮。注意:这将应用于整个窗口,而不仅仅是隐藏按钮。方法来更改窗口的标志。具体来说,您可以使用。标志来指示窗口不显示问号按钮。原创 2023-05-17 17:34:19 · 644 阅读 · 0 评论 -
pyqt5 实现在线程中进行文件下载的完整代码。
变量替换为实际的下载链接和保存路径。此示例代码创建了一个主窗口,其中包含一个进度条和两个按钮:"开始下载"和"停止下载"。单击"开始下载"按钮将启动下载线程,下载文件并更新进度条。单击"停止下载"按钮将停止下载线程。下载完成后,"开始下载"按钮将恢复可用状态,可以再次点击开始下载。url = "http://example.com/file_to_download.txt" # 替换为实际的下载链接。请注意,在代码中,需要将。原创 2023-05-17 11:17:38 · 307 阅读 · 0 评论 -
python pyqt5 qtreewidget 显示水平和垂直网格线
在上面的示例中,我们首先创建一个QTreeWidget,并设置了一些树形视图的属性,例如列数、样式表和其他相关属性。然后,我们添加了一些示例数据,以显示树形结构。要在PyQt5的QTreeWidget中显示水平和垂直网格线,可以使用QTreeWidget的样式表(Stylesheet)来实现。这行代码,我们使用样式表为QTreeWidget的每个项(item)设置了1像素宽的灰色边框,从而实现了水平和垂直网格线的效果。你可以根据需要调整样式表来改变网格线的样式和颜色。# 设置树形视图的网格线可见。原创 2023-05-09 15:18:15 · 1687 阅读 · 0 评论 -
python pyqt5 在编辑框中输入文字时,如何使用正则表达式规定只能输入数字?
请注意,尽管使用了验证器,但仍然应在处理输入数据之前进行额外的验证。通过将验证器应用于编辑框,它将在用户尝试输入非数字字符时阻止输入。要在PyQt5的编辑框中使用正则表达式规定只能输入数字,可以使用。以下是一个示例代码,演示如何将正则表达式应用于。作为正则表达式,它表示只能输入一个或多个数字。# 创建一个只允许输入数字的正则表达式。# 将正则表达式验证器应用于编辑框。对象和要应用验证的编辑框。在上述代码中,我们创建了一个。来限制输入内容只能是数字。原创 2023-05-09 10:37:02 · 479 阅读 · 0 评论 -
python pyqt5 在编辑框中输入文字时,如何规定只能输入数字?
在使用 PyQt5 编写应用程序时,你可以使用 QIntValidator 类来限制文本框中的输入为数字。方法用于设置允许的最小值和最大值。这样,用户就只能在文本框中输入数字,并且范围限制在 0 到 999999 之间。self.setWindowTitle('只允许输入数字示例')# 设置验证器的范围,这里可以设置允许的最小值和最大值。你可以根据需要修改范围和其他验证器的设置,以满足你的具体需求。# 设置验证器到 QLineEdit 中。在上面的示例中,我们创建了一个整数验证器。# 创建一个整数验证器。原创 2023-05-09 10:31:13 · 1874 阅读 · 0 评论