2020年1月18日土曜日

Qt c++ 初めてのアプリ










つくった~(・∀・)ノ
単一ファイルのリネームツール
もともとPyQtで作ってあったモノ
練習と速さを求めてQtで作り直した感じ
手でファイル名を直せば良いだけなんだけども、パターン化されてるのでツールが欲しくなる
正規表現でパターンをいくつか登録しておいてリストで選択してダブルクリックでリネームって流れ

Qtの世界へ
引数の取得、ファイル名の分割、正規表現置換、リネームといった機能が必要だが、全てQtのクラスを使った
多分全てc++にもあると思うんだけども、まず引数はmain関数で取得できるんだろうけどそれをどうやってウインドウのクラスに渡すのかがわからん
調べたらQtで簡単に取得できる
ここかららもうQtの世界になり、文字列も全てQStringだから下手にc++のクラスを使う方が面倒
c++をやってるのかQtをやってるのかわからんって感じです
昔cをやってたときはstringとLPCSをごっちゃに使ってたと思うが、Qtでもごっちゃにして良いんだろうか?
出力で有名なcoutを使ったら怒られてうまくいかん
qDebug() が良いみたいだ
文法はc++だけども、Qtにはその世界があって汎用性は無いのかもしれない
でもQtクラスならすぐF1でヘルプがあるから使いやすい、改めてc++のクラスを勉強する意欲がわかない

PyQtのこと
こう考えるとPyQtはどうだったのかなと
pythonでQtを使うわけだが、GUIだけでなく基本的な文字列の扱いもQtで出来たんだと思う
sqlにしてもQtを使うことも出来たわけだし
pythonの豊富なモジュールを使うのが良いのかQtに徹するのが良いのか??
pythonに関しては何かしたいことがあって検索したらモジュールが出てきて、Qtのクラスはまず出てこない
こういうのも大事だから、pythonは今のままで良いのだろうな

で、どうか?
python版よりは起動速いです
でもものすごく速くは無い
微妙なのかな?
でも開発は面白いわ、早く退職して趣味の世界に専念したいな~( ´∀`)
-----------------------------














200119

機能を付加した
取得したファイル名をスペース区切りで分割して右のリストに表示、ダブルクリックでeverythingで検索
下のボタンでクロームに飛ばしてネットで検索できる
検索サイトは複数登録できる

似たようなツールは既にpythonで作成済みなので統合した感じ
痒いところに手が届いていて結構満足、まあ自作だから当然なんだろうけど

プロセス起動
これは普通に調べるとCreateProcessが出てくるけど、winのapiですよね
c++にはないんだな
それならってことでQProcessを使うことにした
でも結構難しかった

問題点
まずQtCreatorから起動したときと直接起動したときで動作が違う
こういうことはあるよなあ、VSCodeでpythonやってた時もあった
しかしそもそもファイル名に半角スペースが入ると上手くいかないみたい
こういうのって昔の話だと思ってたけどなあ.....
""を二重にすれば良いような気もするが、そのためにエスケープしたり、でもうまくいかない
苦肉の策としてクロームの起動は一旦フルパスに半角スペースの無いpyhonファイルに引数つけて飛ばしてそこから起動させることにした
不満だけどとりあえず
これはc++の問題かもしれん
「Program file」ってフォルダ、マイクロソフトも余計な事したよなあ・・( ゚Д゚)

0 件のコメント:

コメントを投稿