その他もろもろの開発 # 目次 version 4

2019/06/18 17:22 by yamasyuh68
  :追加された部分   :削除された部分
(差分が大きい場合、文字単位では表示しません)
画像のビューアを作る # prog

foobarがバリバリ実用出来るようになってきたので画像の方に行く
foobar の alternative がバリバリ実用出来るようになってきたので画像の方に行くことにした
今は自作のビューアを10年以上使ってる
PCが32bitの時に自作して64でも使ってる
画像表示はgflってxnviewが公開してたdllを使った画像表示は gfl.dll という xnview が公開してくれてを使った
今は無いみたいだが(xnviewから持ってこれたりするかな?)
今ならQtで簡単に行けそうだが、自作のビューアは複数画像をzip化したり文字をjpgに埋め込んだり簡易編集もできるものだった
全ての機能は無理かもしれないけどゆっくり出来ることをやっていきます


# 画像表示について調べてみた

- デザイナは使わなくても良いかな
mainwindow 
label 
layout
pixmap
だけでとりあえず表示できそう
引数対応だが基本はドラッグかな?

- そのフォルダの画像ファイルは列挙してリスト化してホイールで切り替えれるように
これ使ってみたい、簡単かな
QFileSystemModel Class Reference [QtGui module]
QFileSystemModel *model = new QFileSystemModel;
model->setRootPath(QDir.currentPath());

- glob で列挙簡単だった、こっちにしよう、拡張子のフィルタも出来たはず
glob.iglob  イテレータ
glob.glob   リスト

```
import os
import glob
from itertools import chain

search_dir = "path/to/"
ext_list = ["jpg", "png"]

file_list = list(chain.from_iterable([glob.glob(os.path.join(search_dir, "*." + ext)) for ext in ext_list]))
```


- 複数の拡張子は無理みたいだ
拡張子毎にglobしてリストを合体してソートか
list.sort()  破壊的
newlist = list.sorted() 非破壊
```
pics=[]
ext=['jpg','jpeg',`png','gif']
for e in ext :
 pics += glob.glob( <folda> , '*.'+ e )
pics.sort()
print( pics )
```

-  現在のファイルのインデクスと個数を検索して記憶
current['index']=pics.index(<現在のファイル>)
current['size']=len(pics)

- マウスホイールの受付、ただのwheelだった
def wheelEvent (self, QWheelEvent e)
 print( e.delta() ) # mouseWheel

- graphicsView 編集する場合はこれですね


# qt sql

簡単にSQLを使えるようだがtree構造に出来るんだろうか?

QtSql Module
  QSqlQueryModel
  QSqlTableModel


アーティスト アルバム 曲 ファイル
アーティスト アルバム 曲 ファイル

アーティスト
  アルバム
     曲 ファイル
     曲 ファイル
      

foobar の alternative がバリバリ実用出来るようになってきたので画像の方に行くことにした
今は自作のビューアを10年以上使ってる
PCが32bitの時に自作して64でも使ってる
画像表示は gfl.dll という xnview が公開してくれてたのを使った
今は無いみたいだが(xnviewから持ってこれたりするのかな?)
今ならQtで簡単に行けそうだが、自作のビューアは複数画像をzip化したり文字をjpgに埋め込んだり簡易編集もできるものだった
全ての機能は無理かもしれないけどゆっくり出来ることをやっていきます

画像表示について調べてみた

  • デザイナは使わなくても良いかな
    mainwindow
    label
    layout
    pixmap
    だけでとりあえず表示できそう
    引数対応だが基本はドラッグかな?

  • そのフォルダの画像ファイルは列挙してリスト化してホイールで切り替えれるように
    これ使ってみたい、簡単かな
    QFileSystemModel Class Reference [QtGui module]
    QFileSystemModel *model = new QFileSystemModel;
    model->setRootPath(QDir.currentPath());

  • glob で列挙簡単だった、こっちにしよう、拡張子のフィルタも出来たはず
    glob.iglob イテレータ
    glob.glob リスト

import os
import glob
from itertools import chain

search_dir = "path/to/"
ext_list = ["jpg", "png"]

file_list = list(chain.from_iterable([glob.glob(os.path.join(search_dir, "*." + ext)) for ext in ext_list]))
  • 複数の拡張子は無理みたいだ
    拡張子毎にglobしてリストを合体してソートか
    list.sort() 破壊的
    newlist = list.sorted() 非破壊
pics=[]
ext=['jpg','jpeg',`png','gif']
for e in ext :
 pics += glob.glob( <folda> , '*.'+ e )
pics.sort()
print( pics )
  • 現在のファイルのインデクスと個数を検索して記憶
    current['index']=pics.index(<現在のファイル>)
    current['size']=len(pics)

  • マウスホイールの受付、ただのwheelだった
    def wheelEvent (self, QWheelEvent e)
    print( e.delta() ) # mouseWheel

  • graphicsView 編集する場合はこれですね

qt sql

簡単にSQLを使えるようだがtree構造に出来るんだろうか?

QtSql Module
QSqlQueryModel
QSqlTableModel

アーティスト アルバム 曲 ファイル
アーティスト アルバム 曲 ファイル

アーティスト
  アルバム
     曲 ファイル
     曲 ファイル