自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(214)
  • 收藏
  • 关注

原创 【十八】【QT开发应用】标签页QTabWidget的常见用法

当这个属性被设置为 true 时,每个标签页的右上角会显示一个关闭按钮,用户可以通过点击这个按钮来关闭相应的标签页。insertTab 是 Qt 框架中 QTabWidget 类的一个成员函数,用于向标签页控件中添加一个新的标签页。这个函数允许你指定新标签页的索引位置、要添加的控件(通常是 QWidget 的子类),以及标签页的标题或图标。其中 index 是新标签页的索引位置,widget 是要作为标签页内容的控件,text 是标签页的标题。类的一个成员函数,用于设置标签页的位置。

2024-07-08 15:48:58 922 2

原创 【十七】【QT开发应用】手写代码控制UI模拟腾讯会议登录界面,setAlignment,setPixmap,setToolButtonStyle,setIcon,setIconSize........

Qt::AlignCenter: 控件水平和垂直居中对齐(即同时设置 Qt::AlignHCenter 和 Qt::AlignVCenter)。Qt::AlignCenter:文本水平和垂直居中对齐(即同时设置 Qt::AlignHCenter 和 Qt::AlignVCenter)。QPixmap 是 Qt 中用于处理图像的类,可以加载和显示多种格式的图片。Qt::ToolButtonStyle 枚举定义了几种不同的按钮样式,用于控制 QToolButton 中文本和图标的显示方式。

2024-06-26 23:39:17 1456

原创 【十六】【QT开发应用】Menu菜单,contextMenuEvent,setContextMenuPolicy,addAction

在 Qt 框架中,QMenu 类用于创建和管理菜单。菜单是用户界面的一部分,可以包含多个选项或动作,用户可以选择这些选项来执行特定的功能。菜单通常显示在菜单栏、上下文菜单(右键菜单)或工具栏中。基本用法添加动作:使用 addAction 方法将 QAction 对象添加到菜单中。QAction 代表菜单中的一个选项或动作。显示菜单:菜单可以在指定的位置显示,例如在鼠标光标位置。

2024-06-26 16:21:53 893

原创 【十五】【QT开发应用】水平分裂器和竖直分裂器,setLayout,setOpaqueResize,setMinimumWidth

水平分裂器和竖直分裂器是Qt框架中的常用控件,用于创建可以调整大小的子窗口布局。它们通过分割器(splitter)将窗口区域分成多个可独立调整大小的部分。

2024-06-26 01:33:05 933

原创 【十四】【QT开发应用】栅格布局,VS代码控制UI之栅格布局,图片资源qrc添加资源后保存,栅格布局添加控件

下面详细介绍 Qt::AlignLeft | Qt::AlignVCenter 和 Qt::AlignRight | Qt::AlignVCenter 的含义和用法。this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowMinMaxButtonsHint):设置窗口标志,使窗口无边框并包含最小化和最大化按钮。组合使用 Qt::AlignLeft | Qt::AlignVCenter,可以使控件在布局单元格中左对齐并垂直居中。

2024-06-25 18:57:49 1017

原创 【十三】【QT开发应用】VS代码控制UI之竖直布局

在未来的文章中,我将继续探讨这个话题的不同方面,为您呈现更多深度和见解。addWidget(pBtn2) 和 addWidget(pBtn3):将第二个和第三个按钮添加到布局中。setContentsMargins(30,30,30,30):设置布局的内容边距为 30 像素。setObjectName(“pBtn1”):设置按钮的对象名称,便于在样式表或调试中使用。addSpacing(30):在第一个按钮和第二个按钮之间添加 30 像素的间距。setSpacing(1):设置控件之间的间距为 1 像素。

2024-06-25 18:30:35 271

原创 【十二】【QT开发应用】纯代码控制UI控件,QT纯代码ui水平布局,关于VS里面编码中文乱码问题,关于VS里面没有代码补全,番茄助手Visual Assist X教程和资源链接

使用 setSpacing 设置控件之间的间距。设置控件之间的间距是所有在这个水平布局里面的控件相邻的间距.QT5里面这个函数不是设置具体两个相邻控件的间距,而是所有相邻控件的间距.如果有多个会自动选取较大值进行设置.使用 addStretch 方法添加伸缩项,用于控制控件的对齐方式。在未来的文章中,我将继续探讨这个话题的不同方面,为您呈现更多深度和见解。#include :包含 Qt 的水平布局类,用于排列子控件。#include :包含标签控件类,用于显示文本或图像。设置标签和按钮的文本。

2024-06-25 03:46:27 735

原创 【十一】【QT开发应用】模拟腾讯会议登录界面设计UI

上面的代码行在 demo3_Tencent_Meeting_Login 类的构造函数中,用于设置窗口标志,使窗口无边框并带有最小化和最大化按钮。在未来的文章中,我将继续探讨这个话题的不同方面,为您呈现更多深度和见解。setWindowFlags 是 QWidget 类的一个方法,用于设置窗口的标志 (window flags)。这在某些自定义窗口设计中很有用,允许用户最小化和最大化窗口,而不需要传统的标题栏。是 Qt 中的两个枚举值,分别用于设置无边框窗口和带最小化和最大化按钮的窗口。

2024-06-24 22:33:58 850

原创 【十】【QT开发应用】QT中文乱码解决方案

粘贴别人的代码时,在记事本里面"过一遍",然后再粘贴到QTCreator。

2024-06-24 11:58:49 218

原创 【九】【QT开发应用】WebRTC的sigslot源码和使用WebRTC的sigslot使用编写信号槽

WebRTC(Web Real-Time Communication) 是一个开源项目,提供实时通信能力,广泛应用于视频、音频和数据传输。在WebRTC的实现中,sigslot库用于信号和槽机制,以实现事件驱动的编程模型。WebRTC的sigslot部分主要实现了信号和槽的机制,用于简化组件之间的通信和事件处理。WebRTC使用sigslot库来处理事件,例如网络状态变化、媒体流事件等。我们可以利用其sigslot部分编写信号槽.

2024-06-24 11:48:02 611

原创 【七】【QT开发应用】跨UI发送信号,跨线程发送信号

在主窗口的槽函数中(如之前提到的 on_btnOpen_clicked()),连接到 sig_addOne 信号的槽函数会接收到这个 score 值,并在界面上更新显示。这样,当子线程发出信号时,主线程的槽函数会被调用,以更新UI。例如,第一次点击按钮时,score 的值是 100,信号 sig_addOne 发出时传递的值是 100,然后 score 增加到 101。下一次点击按钮时,score 的值是 101,信号 sig_addOne 发出时传递的值是 101,然后 score 增加到 102。

2024-06-23 17:52:14 1129

原创 【八】【QT开发应用】QTcreate项目打包成.exe文件或.apk文件,EnigmaVirtualBox软件下载,虚拟网站代打开QT应用

同时,不要忘记订阅我的博客以获取更多有趣的内容。在未来的文章中,我将继续探讨这个话题的不同方面,为您呈现更多深度和见解。然后手机就会有一个的应用,将这个应用分享到文件管理里面就会生成apk文件.这个新生成的.exe文件就是封装好的可执行文件.可以直接发给你的好朋友.在这个新的文件夹里面打开cmd,这样可以使得cmd直接进入到该文件夹。先加入到中转站,然后打开文件管理,将软件拖到文件管理里面即可.手机打开开发者模式---->关于手机----->狂点版本号.找到自己写好的项目的.exe文件。

2024-06-23 16:27:29 394

原创 【六】【QT开发应用】信号和信号槽的五种写法

mainwindow.cpp复盘第一种写法旧的信号和槽机制在 Qt 4 及更早版本中,信号和槽的连接使用的是字符串形式的信号和槽。这种方式通过 SIGNAL 和 SLOT 宏将信号和槽的签名转换为字符串。在本文中的例子:信号 (SIGNAL):SIGNAL(clicked()):这里的 clicked() 是 QPushButton 类的一个信号。当按钮被点击时,这个信号会被发射。SIGNAL 宏将 clicked() 转换为字符串 “2clicked()”。这里的 2 是内部使用的一个标记

2024-06-22 02:55:20 763

原创 【一】【算法】经典树状数组和并查集,详细解析,初步认识,【模板】树状数组 1,树状数组并查集

tree数组下标8存储arr数组中下标1,2,3,4,5,6,7,8累加和.,在右边8下面画一条长度为1的线,前面线的长度为1,和自己相同,合并在一起长度为2,前面线的长度为2,和自己相同,合并在一起长度为4,前面线的长度为4,和自己相同,合并在一起长度为8,表示1,2,3,4,5,6,7,8累加和.find(2),判断2是不是代表元素,2指向的不是自己,不是代表元素,往上走,2指向的是1,判断1是不是代表元素,1指向的是自己,1是代表元素.所以2元素所在的集合是1元素所在集合的集合.直到遇到下标0为止.

2024-06-21 23:31:59 1393

原创 【五】【QT开发应用】C++中lambda表达式,值捕获,引用捕获,隐式捕获,lambda表达式的返回类型

Lambda 表达式是 C++11 引入的一种特性,用于定义匿名函数。它使得可以在代码中方便地定义和使用小段函数,而无需专门定义一个命名的函数。这在需要传递函数作为参数或者需要定义内联函数时非常有用。基本语法。

2024-06-21 01:25:38 401

原创 【四】【QT开发应用】QT设计一个图片打开器,自动记忆上次打开的路径,配置文件ini的读取与写入,QSettings变量的简单使用,当前应用程序的路径,拼接配置文件路径,设置默认路径

问题1:如何记住上次打开的路径?问题2:如何指定默认的路径为 文档/图片?问题3:如何使图片自适应显示?

2024-06-20 23:57:44 1388

原创 【三】【QT开发应用】VSQT和QTCreator项目互相转化的方法,QTCreator项目转化VSQT,VSQT转化为QTCreator

将qmake.exe所在的目录添加到系统path里面.生成.vcxproj文件。

2024-06-18 17:00:53 327

原创 【二】【QT开发应用】QMake和CMake介绍,GN,QT三个窗口类的区别,QMainWindow, QWidget,QDialog

qt独有的代码构建工具, 是一种简洁的构建工具,主要用于生成 Qt 项目的跨平台编译配置文件,语法简单,适合小型和中型项目。:C++通用的代码构建工具,绝大部分C++开源项目都使用cmake管理代码,例如obs,jsoncpp,libcurl,log4cpplus等,是一个通用且灵活的构建系统,适用于各种类型的 C++ 项目。它支持多种编译器和操作系统,提供强大的依赖管理和模块化功能,适合处理复杂的构建过程。

2024-06-17 21:40:37 517

原创 【一】【QT开发应用】QT开发环境配置,安装QT应用

点击网址链接,

2024-06-17 16:24:17 413

原创 【一】【网络使用小知识】使用aria2软件结合Windows PowerShell命令行快速下载文件

点击进入网址,下载windows版本.

2024-06-17 15:19:55 1193

原创 【二】【动态规划NEW】91. 解码方法,62. 不同路径,63. 不同路径 II

一条包含字母 A-Z 的消息通过以下映射进行了 编码 :‘A’ -> “1”‘B’ -> “2”要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。例如,“11106” 可以映射为:“AAJF” ,将消息分组为 (1 1 10 6)“KJF” ,将消息分组为 (11 10 6)注意,消息不能分组为 (1 11 06) ,因为 “06” 不能映射为 “F” ,这是由于 “6” 和 “06” 在映射中并不等价。

2024-06-15 17:06:02 1089

原创 【一】【动态规划NEW】1137. 第 N 个泰波那契数,面试题 08.01. 三步问题,使用最小花费爬楼梯

泰波那契序列 Tn 定义如下:T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0 的条件下 Tn+3 = Tn + Tn+1 + Tn+2给你整数 n,请返回第 n 个泰波那契数 Tn 的值。示例 1:输入:n = 4 输出:4 解释: T_3 = 0 + 1 + 1 = 2 T_4 = 1 + 1 + 2 = 4 示例 2:输入:n = 25 输出:1389537提示:0

2024-06-14 00:02:47 605

原创 【一百一十】【算法分析与设计】[SDOI2009] HH的项链,树状数组应用,查询区间的种类数,树状数组查询区间种类数

当i遍历到5的时候,我们查询map_left发现5位置的元素3之前出现过,位置是3,所以需要进行去重操作,将3位置count值减少1,然后5位置count值增加1.并且将维护arr_left值,元素3最右边的下标是5.因此我们可以按照这样的规则,只保留最右边的1.因为如果包含最右边的1,其他的可以被代替,如果没有包含最右边的1,其他的1也没有意义.1表示重复的种类的1出现的位置,那么打叉的地方是需要进行去重的,打勾的地方是可以选择保留的地方.按照查询的右区间进行排序,然后只维护r左边的count值.

2024-06-08 17:39:21 997

原创 【一百零九】【算法分析与设计】树状数组求解前缀最大值,673. 最长递增子序列的个数,树状数组求前缀区间最大值

树状数组可以求解和前缀区间有关的问题,例如前缀和,前缀区间最值.可以利用logn​的时间复杂度快速查找前缀信息.利用树状数组查询前缀区间中最大值问题.树状数组下标1位置存储arr数组下标1位置的最大值.树状数组2位置存储arr数组1,2位置最大值.数组数组3位置存储arr数组3位置最大值.以此类推…查找arr数组1~i前缀区间最大值.利用lowbit跳转,记录遍历的每一个tree[i]的最大值.

2024-06-08 00:08:26 1136

原创 【一百零八】【算法分析与设计】P1908 逆序对,P1637 三元上升子序列,树状数组区间和应用

二元组意思是下标{i,j}组合,并且满足i

2024-06-07 09:35:09 793

原创 【一百零七】【算法分析与设计】P3374 【模板】树状数组 1,P3368 【模板】树状数组 2,P3372 【模板】线段树 1,树状数组实现单点更新范围查询,范围更新单点查询,范围更新范围查询

对于arr[i]可以理解从i位置开始累加arr[i],但是到i+1位置就停止,所以从i位置开始对后面的值的影响是arr[i],但是i+1位置开始就停止影响了,所以从i+1位置对后面的影响是-arr[i].+(diff(1)+diff(2)+…所以我们需要构造两个数组数组,一个是arr数组对应的差分数组,一个是(i-1)*差分数组的值的数组.对arr数组范围(l~r)累加k.只需要维护diff[l]+=k,diff[r+1]-=k.需要维护的下标分别是i+lowbit(i),i+2*lowbit(i)…

2024-06-06 01:06:31 1152

原创 【一百零六】【算法分析与设计】并查集的实现,P3367 【模板】并查集,sizee集合的元素个数信息

给定一个没有重复值的整形数组arr,初始时认为arr中每一个数各自都是一个单独的集合。请设计一种叫UnionFind的结构,并提供以下两个操作。boolean isSameSet(int a, int b): 查询a和b这两个数是否属于一个集合void union(int a, int b): 把a所在的集合与b所在的集合合并在一起,原本两个集合各自的元素以后都算作同一个集合[要求]

2024-06-05 14:49:53 803

原创 【一百零五】【算法分析与设计】分解质因数,952. 按公因数计算最大组件大小,204. 计数质数,分解质因数,埃式筛

题目:分解质因数题目描述给定一个正整数n,编写一个程序将其分解为质因数,并按从小到大的顺序输出这些质因数。输入格式一个正整数n,其中n的范围是。输出格式按从小到大的顺序输出n的质因数,每个质因数占一行。输入示例4012100输出示例2 5 53 757提示程序需要处理大整数,因此使用long long类型。质因数应该按从小到大的顺序输出。每个质因数只输出一次,即使一个质因数在n中出现多次。一个任意的正整数n可以写成质因数的乘积形式:np1k1×p2k2×⋯。

2024-06-05 13:47:51 667

原创 【一百零四】【算法分析与设计】【模板】二维差分,2132. 用邮票贴满网格图,LCP 74. 最强祝福力场,二位差分,差分思想,记录变化值,离散化技巧

描述给你一个n行m列的矩阵,下标从1开始。接下来有q次操作,每次操作输入5个参数x1, y1, x2, y2, k表示把以(x1, y1)为左上角,(x2,y2)为右下角的子矩阵的每个元素都加上k,请输出操作后的矩阵。输入描述:第一行包含三个整数n,m,q.接下来n行,每行m个整数,代表矩阵的元素接下来q行,每行5个整数x1, y1, x2, y2, k,分别代表这次操作的参数1≤nm≤10001≤q≤1051≤x1≤x2≤n1≤y1≤y2。

2024-06-04 20:08:41 927

原创 【一百零三】【算法分析与设计】并查集,并查集的实现,P3367 【模板】并查集

给定一个没有重复值的整形数组arr,初始时认为arr中每一个数各自都是一个单独的集合。请设计一种叫UnionFind的结构,并提供以下两个操作。boolean isSameSet(int a, int b): 查询a和b这两个数是否属于一个集合void union(int a, int b): 把a所在的集合与b所在的集合合并在一起,原本两个集合各自的元素以后都算作同一个集合[要求]

2024-06-03 16:19:10 239

原创 【一百零二】【算法分析与设计】304. 二维区域和检索 - 矩阵不可变,1139. 最大的以 1 为边界的正方形,地毯,二维前缀和求区间累加和,二维差分处理重复多个数据

给定一个二维矩阵matrix实现NumMatrix给定整数矩阵matrix进行初始化返回所描述的子矩阵的元素。最多调用104次sumRegion方法给你一个由若干0和1组成的二维网格grid,请你找出边界全部由1组成的最大子网格,并返回该子网格中的元素数量。如果不存在,则返回0。为0或地毯题目描述在n×n的格子上有m个地毯。给出这些地毯的信息,问每个点被多少个地毯覆盖。输入格式第一行,两个正整数nm。意义如题所述。接下来m行,每行两个坐标x1​y1​和x2​y。

2024-06-03 01:03:47 637

原创 【一百零一】【算法分析与设计】差分,1109. 航班预订统计,P4231 三步必杀,P5026 Lycanthropy

这里有n个航班,它们分别从1到n进行编号。有一份航班预订表bookings,表中第i条预订记录意味着在从first(i)到last(i)first(i)和last(i))的上预订了seats(i)个座位。请你返回一个长度为n的数组answer,里面的元素是每个航班预定的座位总数。

2024-06-01 20:27:07 743

原创 【一百】【算法分析与设计】N皇后问题常规解法+位运算解法

来源:牛客网给出一个n×nn\times nn×n的国际象棋棋盘,你需要在棋盘中摆放nnn个皇后,使得任意两个皇后之间不能互相攻击。具体来说,不能存在两个皇后位于同一行、同一列,或者同一对角线。请问共有多少种摆放方式满足条件。一行,一个整数n(1≤n≤12)n(1\le n \le 12)n(1≤n≤12),表示棋盘的大小。输出一行一个整数,表示总共有多少种摆放皇后的方案,使得它们两两不能互相攻击。示例1复制44复制22。

2024-05-31 14:41:05 484

原创 【三】【算法分析与设计】第三届程序设计竞赛部分题目,竖式加法,竖式乘法,求序列差最大,小红的字符串,再编号,消灭飞龙,世界五子棋

$$10^9$$

2024-05-30 19:35:35 996

原创 【九十九】【算法分析与设计】百度之星2023部分题目,BD202311 夏日漫步,BD202314 跑步,BD202321 新材料,找下一个元素值相等的下标用map或者排序

夏日夜晚,小度看着庭院中长长的走廊,萌发出想要在上面散步的欲望,小度注意到月光透过树荫落在地砖上,并且由于树荫的遮蔽度不通,所以月光的亮度不同,为了直观地看到每个格子的亮度,小度用了一些自然数来表示它们的亮度。亮度越高则数字越大,亮度相同的数字相同。走廊是只有一行地砖的直走廊。上面一共有 nn个格子,每个格子都被小度给予了一个数字 a_iai来表示它的亮度。小度现在站在 11 号格子,想要去到 nn号格子。小度可以正向或反向移动到相邻的格子,每次需要花费 11 的体力。

2024-05-30 16:22:51 727

原创 【九十八】【算法分析与设计】百度之星2023部分题目,BD202301 公园,BD202303 第五维度,BD202305 糖果促销,BD202328 传信游戏

今天是六一节,小度去公园玩,公园一共 NN个景点,正巧看到朋友圈度度熊也在这个公园玩,于是他们约定好一块去景点 NN。小度当前所在景点编号为 TT,从一个景点到附近的景点需要消耗的体力是 TETE,而度度熊所在景点编号为 FF,移动消耗为 FEFE。好朋友在一块,赶路都会开心很多,所以如果小度和度度熊一块移动(即在相同位置向相同方向移动),每一步他俩的总消耗将会减少 SS。求他俩到景点 NN时,所需要的总消耗最少是多少?格式输入格式:第一行三个数值,TE,FE,S。

2024-05-29 20:11:23 1057

原创 【九十七】【算法分析与设计】图论,迷宫,1207. 大臣的旅费,走出迷宫,石油采集,after与迷宫,逃离迷宫,3205. 最优配餐,路径之谜

很久以前,TT 王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。为节省经费,TT 国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。同时,如果不重复经过大城市,从首都到达每个大城市的方案都是唯一的。JJ 是 TT 国重要大臣,他巡查于各大城市之间,体察民情。所以,从一个城市马不停蹄地到另一个城市成了 JJ 最常做的事情。他有一个钱袋,用于存放往来城市间的路费。

2024-05-29 13:31:25 1051

原创 【九十六】【算法分析与设计】使用回溯法求解子集(幂集)问题,使用回溯法求解“和”问题,使用回溯法求解全排列问题,使用回溯法求解0/1背包问题(同时进行左剪枝和右剪枝改进)

有一个含n个整数的数组a,所有元素均不相同,设计一个算法求其所有子集(幂集)。例如,a[]={1,2,3},所有子集是:{},{3},{2},{2,3},{1},{1,3},{1,2},{1,2,3}(输出顺序无关)。求解过程和结果如下图所示:1.递归解决组合问题.节点信息是集合中存在的元素.也就是我们选择的元素.2.n个整数的数组a,我们需要选择n次,因此i表示当前节点的位置.递归的出口试i==n的时候.3.递归函数只需要做两件事情,第一件事是选择,第二件事是不选择.

2024-05-27 15:14:44 1082

原创 【九十五】【算法分析与设计】22级一二班 蛮力法实验,字符串编码与解码,【模板】01背包, wnm的全排列,非递归实现组合型枚举,内置函数找全排列--->找固定数量的组合

来源:牛客网给你两个长度相同的字符串a,b,现在已知b是a编码之后的结果比如a = "CAT", b = "DOG", 那么D其实是C,O其实是A,G其实是T现在给你一个字符串c,如果c能够被解码出来,输出c解码后的字符串,如果不能输出@输入三行,每行一个字符串,长度在50以内输出一个字符串示例1复制CAT DOG GODCATDOGGOD复制TACTAC示例2复制BANANA METETE TEMPBANANAMETETETEMP复制@示例3。

2024-05-27 11:10:47 700

原创 【九十四】【算法分析与设计】练习四蛮力法练习,排列问题和组合问题,求解最大连续子序列和问题,求解幂集问题,求解0/1背包问题,求解任务分配问题

给定一个有n(n≥1)个整数的序列,要求求出其中最大连续子序列的和。例如:序列(-2,11,-4,13,-5,-2)的最大子序列和为20序列(-6,2,4,-7,5,3,2,-1,6,-9,10,-2)的最大子序列和为16。规定一个序列最大连续子序列和至少是0(看成0个元素构成的子序列),如果小于0,其结果为0。1.子数组累加和最大值问题,如何划分问题,子数组应该如何划分?可以划分为以某一个位置结尾的子数组,以i位置结尾的子数组.

2024-05-26 15:28:43 994

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除