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

相关推荐
Henry Zhu1232 小时前
Qt事件驱动与信号槽原理分析
qt
qq_401700412 小时前
QBoxLayout支持水平布局和垂直布局构建一个键盘
qt
Henry Zhu1233 小时前
Qt实现事件发布订阅系统
开发语言·qt
喜欢喝果茶.3 小时前
Qt 控件使用铁律
开发语言·qt
宠..4 小时前
QRadioButton方法大全
java·服务器·开发语言·数据库·qt
艾莉丝努力练剑5 小时前
【QT】初识QT:搭建Qt的开发环境
linux·运维·开发语言·c++·人工智能·qt·安全
_OP_CHEN5 小时前
【从零开始的Qt开发指南】(十六)Qt 事件入门:从原理到实战,掌握事件处理的核心秘诀
开发语言·qt·前端开发·qt事件·客户端开发·gui开发·qt系统相关
heisd_15 小时前
RVIZ和QT联合
qt·rviz
你又食言了哦5 小时前
QT中初始化QComboBox控件
开发语言·数据库·qt
qq192572302720 小时前
QT的QML
开发语言·qt