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

Linux书签上下移动

步骤

读书签文件,分割到QStringList,点击右键菜单获取序号,交换序号,写书签文件。

QStringList.swap(int, int) 过时,QStringList.swapItemsAt(int, int) 代替。

书签文件路径

mainwindow.h

const QString filepath_bookmark = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) + "/gtk-3.0/bookmarks";

上移

connect(action_bookmark_move_up, &QAction::triggered, [=](){
    QTreeWidgetItem *TWI = ui->treeWidget_nav->currentItem();
    int index = TWI_bookmark->indexOfChild(TWI);
    QFile file(filepath_bookmark);
    if (file.open(QFile::ReadWrite)) {
        QTextStream TS(&file);
        QString s = TS.readAll();
        QStringList SL = s.split("\n");
        SL.swapItemsAt(index, index - 1);
        s = "";
        for (int i=0; i<SL.length(); i++) {
            s += SL.at(i);
            if (i < SL.length() - 1)
                s += "\n";
        }
        file.resize(0);
        TS << s;
        file.close();
    }
});

下移

swap -1 改成 +1,其他一样。

connect(action_bookmark_move_down, &QAction::triggered, [=](){
    QTreeWidgetItem *TWI = ui->treeWidget_nav->currentItem();
    int index = TWI_bookmark->indexOfChild(TWI);
    QFile file(filepath_bookmark);
    if (file.open(QFile::ReadWrite)) {
        QTextStream TS(&file);
        QString s = TS.readAll();
        QStringList SL = s.split("\n");
        SL.swapItemsAt(index, index + 1);
        s = "";
        for (int i=0; i<SL.length(); i++) {
            s += SL.at(i);
            if (i < SL.length() - 1)
                s += "\n";
        }
        file.resize(0);
        TS << s;
        file.close();
    }
});

监视到书签文件变化更新书签树

QFileSystemWatcher只触发一次-CSDN博客

相关文章:

  • Git LFS (Large File Storage) 简介
  • redis主从搭建
  • 79.HarmonyOS NEXT 手势操作模型详解:移动、缩放与旋转的实现原理
  • 1216走迷宫
  • OSPF | LSDB 链路状态数据库 / SPF 算法 / 实验
  • 接口自动化测试用例
  • 电路基础【2】:三极管基础:PNP与NPN三极管详解
  • 微服务》》四个问题
  • HTTP相关问题(AI回答)
  • 【Linux-传输层协议TCP】流量控制+滑动窗口+拥塞控制+延迟应答+捎带应答+面向字节流+粘包问题+TCP异常情况+TCP小结
  • 谷歌Gemini 3大模型发布,AI领域再掀波澜!
  • 数据结构与算法-图论-欧拉路径和欧拉回路(有向图和无向图,骑马修栅栏,单词游戏 play on words)详细代码注解
  • 【精华】学校机房电脑摆脱网络控制
  • Spring Security vs Shiro vs Sa-Token
  • ESP-IDF中FreeRTOS的三种任务调度算法
  • C语言中的指针与函数
  • 2025-03-15 学习记录--C/C++-C语言 %.0f的使用和round函数(实现四舍五入)
  • Word 小黑第4套
  • 蓝耘MaaS平台:阿里QWQ应用拓展与调参实践
  • MySQL(事物下)
  • 广东进入“倒水模式”,珠江防总、珠江委已启动Ⅳ级应急响应
  • 湖南4个县市区被确定为野生蘑菇中毒高风险区:中毒尚无特效解毒药
  • 小米汽车机盖门陷谈判僵局,车主代表称小米表示“退订会造成崩塌”
  • 获派驻6年后,中国驻厄瓜多尔大使陈国友即将离任
  • 李公明︱一周书记:当前科学观中的盲点、危机与……人类命运
  • 马上评|安排见义勇为学生补考,善意与善意的双向奔赴