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

相关推荐
技术不支持3 小时前
Qt Creator 11.0.3 语法高亮bug问题
java·服务器·数据库·qt·bug
zhangzhangkeji7 小时前
QT6 源,十章绘图(2)画刷 QBrush:刷子只涉及填充颜色,线型,填充图片,以及变换矩阵这几个属性,附源代码带注释。
qt
lzb_kkk10 小时前
【实习总结】Qt通过Qt Linguist(语言家)实现多语言支持
开发语言·c++·qt·1024程序员节·qt linguist·qt 语言家
懷淰メ17 小时前
日常--详细介绍qt Designer常用快捷键(详细图文)
开发语言·qt·pyqt·快捷键·qtdesigner·ui设计·qt设计师
啊森要自信17 小时前
【QT】Qt 信号与槽的使用详解&&连接方式&&Lambda表达式定义槽函数
android·开发语言·c++·qt·qt5
axban1 天前
QT中删除控件的注意事项、deleteLater和delete的区别
java·数据库·qt
FlechazoCLF1 天前
QT中使用OpenCV保姆级教程
开发语言·qt·opencv
Simple_core2 天前
qt中的手势
开发语言·qt
筏.k2 天前
用 Qt 打造优雅的密码输入框:添加右侧眼睛图标切换显示
开发语言·数据库·qt
程序员编程指南2 天前
Qt 嵌入式界面优化技术
c语言·开发语言·c++·qt