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(); } });
監(jiān)視到書簽文件變化更新書簽樹
QFileSystemWatcher只觸發(fā)一次
- 百度AI回答:
- 只能觸發(fā)一次,如果需要持續(xù)觸發(fā),需要在處理完觸發(fā)后,再次添加路徑。
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); });
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
centos服務(wù)器下nginx圖片防盜鏈設(shè)置方法
本篇文章主要介紹了centos服務(wù)器下nginx防盜鏈設(shè)置方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03Linux中 CentOS 6.5 手動升級gcc到gcc-6.1.0
這篇文章主要介紹了Linux中 CentOS 6.5 手動升級gcc到gcc-6.1.0的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-10-10