Linux书签上下移动方式

 更新时间:2025年03月20日 10:13:27   作者:海天鹰  
这篇文章主要介绍了Linux书签上下移动方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

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只触发一次

  • 百度AI回答:
  • 只能触发一次,如果需要持续触发,需要在处理完触发后,再次添加路径。
const QString filepath_bookmark = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) + "/gtk-3.0/bookmarks";
QFileSystemWatcher *watcher = new QFileSystemWatcher;
watcher->addPath(filepath_bookmark);
connect(watcher, &QFileSystemWatcher::fileChanged, [=]{
    genBookmark();
    watcher->addPath(filepath_bookmark);
});

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • centos6.5中用yum方式安装php5.4与apache2.2的步骤

    centos6.5中用yum方式安装php5.4与apache2.2的步骤

    相信大家都知道lamp的安装配置,最麻烦的是apache和php,网上关于apache和php的安装配置有很多的相关文章,本文通过针对版本进行详细的介绍,文章主要介绍的是centos6.5中用yum方式安装php5.4与apache2.2的步骤,感兴趣的朋友们可以参考学习。
    2016-10-10
  • linux脚本基础详细介绍

    linux脚本基础详细介绍

    本文通过详细讲解linux脚本中的翻译字符、变量数组、各种命令设定等,现在我们大家一起来学习吧
    2021-08-08
  • linux 普通用户切换成root免密码的实现

    linux 普通用户切换成root免密码的实现

    下面小编就为大家带来一篇linux 普通用户切换成root免密码的实现。小编觉得挺不错的。现在就分享给大家。也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • Linux(CentOS)​​同步服务器chrony的安装配置和常用命令

    Linux(CentOS)​​同步服务器chrony的安装配置和常用命令

    Chrony是一款开源的网络时间协议(NTP)客户端和服务端软件,旨在提供高精度的时间同步功能,相较于传统的NTP实现如ntpd,Chrony提供了一些改进和优势,包括更快的同步速度、低延迟、低CPU占用和低内存消耗,本文介绍Linux(CentOS)​​同步服务器chrony的安装配置和常用命令
    2024-06-06
  • Windows 10 下安装 Apache 2.4.41的教程

    Windows 10 下安装 Apache 2.4.41的教程

    这篇文章主要介绍了Windows 10 下安装 Apache 2.4.41的教程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • Apache安全配置之禁止目录访问的配置方法

    Apache安全配置之禁止目录访问的配置方法

    这篇文章主要介绍了Apache禁止目录访问的配置方法,这是一个常见的、非常有必要的apache安全配置之一,需要的朋友可以参考下
    2014-05-05
  • Linux使用head命令查看文件开头内容的方法详解

    Linux使用head命令查看文件开头内容的方法详解

    在 Linux 系统中,head 命令是一个非常基础且实用的工具,它能够帮助我们快速查看文件的前几行内容,本文将深入探讨 head 命令的各种用法,并通过丰富的代码示例和图表来展示其强大功能,需要的朋友可以参考下
    2026-01-01
  • 在Linux服务器上安装 memcached的基本操作

    在Linux服务器上安装 memcached的基本操作

    本文分步骤给大家详细介绍了linux服务器上安装memcached的操作方法,非常不错,需要的朋友参考下吧
    2016-12-12
  • Linux下gdb调试打印栈帧中的变量过程

    Linux下gdb调试打印栈帧中的变量过程

    这篇文章主要介绍了Linux下gdb调试打印栈帧中的变量过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • 简单实现linux聊天室程序

    简单实现linux聊天室程序

    这篇文章主要介绍了简单实现linux聊天室程序的详细代码,帮助大家了解聊天室的实现原理,感兴趣的小伙伴们可以参考一下
    2015-12-12

最新评论