由於專案需要對qtreewidget樹節點進行搜尋,所以就做了乙個精確搜尋樹節點文字的輪子。
一般搜尋方式有兩種:精確搜尋和模糊搜尋。下面我分兩部分說明,假設樹中節點文字有漢字、英文、數字。
-->精確搜尋搜尋框中輸入漢字時使用精確搜尋,我所設計的並不是嚴格意義上的精確搜尋。比如對於文字「東京不太熱miao」,輸入「京」、「太熱」、「不太熱mi」等關鍵字都能搜到,但是如果輸入「京東」那就不匹配了。
-->模糊搜尋
模糊搜尋也就是拼音搜尋,輸入漢字的拼音首字母就能搜到它,比如對於「東京不太熱miao」,輸入「djbtr」、「btr」、「trm」、「trm」等關鍵字都能搜到。我給拼音首字母搜尋加了點功能,就是輸入全拼時也能搜尋,但必須從第乙個漢字的拼音開始,比如「dongjingb」匹配,但是「jingbutaire」就不匹配了。
圖 1
圖 2
1.中英文及數字查詢2.查詢節點路徑展示
3.背景顏色標記
實現**:標頭檔案
#include "widget.h"
#include "ui_widget.h"
widget::widget(qwidget *parent) :
qwidget(parent),
ui(new ui::widget)
widget::~widget()
void widget::searchchild(qtreewidgetitem *citem, const qstring &txt)
else
searchchild(item, txt);
}}void widget::parentexpand(qtreewidgetitem *item)
parentexpand(pitem);
}}void widget::on_pushbutton_clicked()
return;
}if ( ! isemptytree)
#if 0
int count = ui->treewidget->toplevelitemcount();
for (int i =0; i < count; ++i) else
searchchild(citem, txt);
}#else
qtreewidgetitemiterator it(ui->treewidget);
while(*it)
}(*it)->setbackground(0,qt::green);
parentexpand(*it);
} else
it++;
}#endif
}void widget::on_lineedit_editingfinished()
main檔案#include "widget.h"
造輪子之我見
味,因為自己就是那一小撮喜歡造輪子的人!自己錯了,錯在哪呢?浪費時間?那麼很快的把事做完了,再做點啥呢!自己是個人英雄主義麼。想出頭麼,想要更多的公升職,加薪 麼,想要譁眾取寵麼!困惑,苦悶,壓力,壓抑,接踵而來。今天看了篇文章 似乎不光自己由此困惑,很多人或者說很多想要做輪子或者 正在造輪子的人 ...
談談自己造輪子
寫下這篇文章,主要是對我近段時間工作的反思。對於一些程式設計師來說,喜歡自己造輪子可算是乙個很平常的事情,我想可能有如下原因 我不覺得造輪子不好,曾今很長一段時間我都認為造輪子是體現自己能力很好的一種方式,但是現在越來越覺得,不要過分的去造輪子。昨天,我需要對接amazon s3的儲存,官方沒有go...
C語言造輪子
double 數轉 uint64 t 四捨五入法 vs 中線程安全函式 sprintf sprintf s strtok strtok s gcc 中線程安全函式 strtok strtok r uint64 t doubletoull double a char p null,pp null ui...