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博客

相关推荐
国服第二切图仔4 小时前
Qt-for-鸿蒙PC-多线程绘制开源鸿蒙开发实践
qt·开源·鸿蒙pc
国服第二切图仔5 小时前
Qt-for-鸿蒙PC-CheckBox开源鸿蒙开发实践
qt·开源·鸿蒙pc
喵个咪8 小时前
Qt 优雅实现线程安全单例模式(模板化 + 自动清理)
c++·后端·qt
离离茶12 小时前
【笔记1-8】Qt bug记录:QListWidget窗口的浏览模式切换为ListMode后,滚轮滚动速度变慢
笔记·qt·bug
共享家952716 小时前
QT-系统(文件)
开发语言·qt·命令模式
IT从业者张某某17 小时前
Qt-for-鸿蒙PC-TextEditorPro 多功能文本编辑器开源鸿蒙开发实践
qt·开源·harmonyos
IT从业者张某某18 小时前
Qt-for-鸿蒙PC-验证码组件开发实战
开发语言·qt·harmonyos
全栈陈序员20 小时前
Qt for HarmonyOS/weather 天气应用项目
开发语言·qt·华为·harmonyos
风闲12171 天前
Qt源码编译记录
开发语言·qt
864记忆1 天前
Qt c++的基础语法有哪些?
开发语言·c++·qt