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