Linux书签上下移动

步骤

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

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

书签文件路径

mainwindow.h

cpp 复制代码
const QString filepath_bookmark = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) + "/gtk-3.0/bookmarks";

上移

cpp 复制代码
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,其他一样。

cpp 复制代码
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博客

相关推荐
爱吃涮毛肚的肥肥(暂时吃不了版)2 小时前
仿腾讯会议——创建房间&加入房间
c++·qt·面试·职场和发展·腾讯会议
꧁坚持很酷꧂3 小时前
Qt天气预报系统绘制温度曲线
开发语言·qt
可可乐不加冰4 小时前
QT生成保存 Excel 文件的默认路径,导出的文件后缀自动加(1)(2)等等
开发语言·qt
「QT(C++)开发工程师」4 小时前
Qt还有希望吗
qt
机器视觉知识推荐、就业指导5 小时前
Qt开发经验:回调函数的线程归属问题及回调函数中更新控件的问题
开发语言·qt
zhangzhangkeji7 小时前
QT6 源(82):阅读与注释日历类型 QCalendar,本类并未完结,儒略历,格里高利历原来就是公历,
qt
星火撩猿8 小时前
OpenGl实战笔记(3)基于qt5.15.2+mingw64+opengl实现光照变化效果
笔记·qt·opengl·光照效果
若水晴空初如梦8 小时前
QT聊天项目DAY09
开发语言·qt·bootstrap
yxc_inspire10 小时前
基于Qt的app开发第六天
开发语言·c++·qt
星火撩猿12 小时前
OpenGl实战笔记(2)基于qt5.15.2+mingw64+opengl实现纹理贴图
笔记·qt·opengl·纹理贴图