これは昨日やったことです
調べたらwxだとデータをviewと独立して扱うのが難しそうだったので、Qtでやってみることにした
Qtではscintilla
をいじった際にtreeを使ったが、簡便なtreewidget
だったので、viewは初めて
でもexampleサイトを見たら意外と簡単ですぐ出来た
それよりもdesigner
でUIを作るのに手惑いました
基本的なところがまだわかってない気がする
インストがうまくいってないんだと思うけど、designer
は使えるんだけどドキュメントが見れなくて、試行錯誤
解説サイト見てもよくわかんないんだよなあ・・・
とりあえずこんな感じ
結構速い、wxよりもしかしたら良いのかも???
<fig>
<code>
treeview の作り方
QStandardItemModel
に直接appendRow
すればルートになる。この戻り値に対してさらにappendRow
すれば子供、孫になっていく
appendRow
するデータは全てQStandardItem(string)
で作る
最後にtreeview'に
QStandardItemModel`をセットして終わり
勿論最初にセットしておいてもいい
結構簡単だった(・∀・)ノ
面白かったのは文字列以外の非表示データの設定。treewidget
を使ったときはやり方がわからず、二番目のカラムにデータをセットして非表示にしたんだけど、treeview
だと出来る。treewidget
でも出来たのかな??
作ったviewはカラム一つなので、複数の作り方はまだわかんない
夜に試したこと
・Qtのウインドウにメニューをつける~いろいろ試してみたいことがあるときはボタンを配置してコネクトしてたが、Qtだと後から配置するのは結構めんどくさい(というかやりかたがわからん)
右クリックのコンテキストメニューを出すのも難しそう
なので前からやってみたかったウインドウメニューを使ってみたら結構簡単にできた(・∀・)ノ
designer
で設定して、コードはこんな感じ
<code>
treeにセットしたQStandardItemModel
をclearしたら瞬間で消えた
簡単なデータをセットしたQStandardItemModel
をもう一つ作って、treeへセットしたら瞬間で切り替わった
結構良い感じです( ´∀`)