堕天使の煉獄
2023-05
19
05:15:06
おもったほどでは
18日も暑くなると聞いて身構えてたものの……まあ暑いは暑かったけど、うちのところは少し曇り気味だったのと、結構風があったせいで17日に比べればそこまで暑くなかったかな。
室温も30度ぐらいだったし。
まあクーラーはちょっとだけ試運転もかねてつけたけど。
つけたら寒くなったのでちょっとつけたあとすぐ消したり(ぉ
今日の作業は、相変わらず設定まわりのuiがりごり。
単純な文字列入力部分の履歴から入力したり、その履歴の管理をするプチダイアログは以前のコードだとQtのフォームデザイナでつくってたんだけど。
Qtのフォームデザイナで生成すると、xxxx.cppとxxxx.hとxxxx.uiが生成されるんですよね。
最近は基本、なんでもヘッダオンリーで.cppは使わないコーディングに移行してるので、フォームデザイナ使うとそこだけcppも生成されるのがなんか汚された感あってなんかヤダ。
っていう感覚は以前からあって。
でもまあ、先日の設定画面みたくそこそこ中身詰まってるようなものはデザイナ使わないとシンドい……てのはあったのだけども。
ちょっとした数個程度のコントロールあるだけのやつにまで.cppとか.uiまで生成されるのもなぁ。
あと、この方法で作った物って、部分だけコピーてのが難しいんですよね。
いや使い回すの前提ならそこだけ別のコントロールとして切り出して分けておくってのもできるっちゃできるんですが。
1画面でガリゴリレイアウトを作ったうえで、あとからこの部分切り出したいなって時に
ui部分のコピーだけならできるんですけど、ボタン押したあとの動作とかそのへんまではコピーできないわけで。
やろうと思うとその部分の.hと.cppのソースコード両方をコピペする必要があって。
それがなかなかめんどい。
んで、フォームデザイナ使わないでそのままソースコードオンリーで記述する方法もあったりするんですけど。
結構泥臭いやり方なのと、こまかなデザインの修正とかが難しい……ってのもあって結局デザイナ使ったほうがいいのかなぁとおもってたのですが。
とりあえずソースコードオンリーのも試してみるかってことで今回やってみることに。
右下の履歴編集のダイアログとそのソース部分。
上の方から順番に入れ物用意して積み上げていく感じで……まあ簡単なものならこれでもいいかなぁという気もしないでもない。
でもQVBoxLayoutとかQPushButtonとか使用するコントロール増えるたびにそれぞれ#includeとか書き足さないといけないのは地味にめんどくさいなコレ。
デザイナ経由だと、自動で.uiに追加されビルド時にui_xxxx.h内にincludeの項目が自動で追加される感じで自動化されてるんだけど。
あとやっぱ細かいレイアウトの調整とかやりたくなったときソースコードのみでやるのはしんどいなこれ。わかってたこととは言え。
大まかなレイアウトにそんな気を使わないレベルのものにしか使えないぽ。
ただメリットも結構あって。
ヘッダオンリーで記述してるので、コピペが簡単。
別のプロジェクトに同じものを使いたいってなったら.hをプロジェクトに追加するだけですぐ使える。
部分的に使い回す際も、ボタンの動作とかも、画像のソースコード部のしたのほうにある
connect(button_add, &QPushButton::clicked, this, &StringHistryEditDialog::on_button_add_clicked);
button_addっていうプッシュボタンオブジェクトのclicked()が発信されるとthis(自分自身)のon_button_add_clicked()メソッドを実行するよっていう文なのですが。
この文コピーしてon_button_add_clicked()を追加して中身を書くだけで再利用可能になるわけですよ。
使いまわしという点では、ソースコードオンリーのがはるかに取り回しが便利だなぁと。
なんだかんだで結局はデザイナで作ったほうが面倒無いのかも……と思ってたけど、実際に組んでみると、ソースコードオンリーのが便利な気がしてきた……。
まあ小物に限るっていう但し書きはつくだろうけど。
あとはVisual Studio 2022 バージョン 17.6来てたな。
リリースノートの方で17.6だと、class名のところからポップアップでてそこからデフォルトコンストラクタ(メンバの初期化付き)とか等値演算子とかをワンタッチで追加できるようにってのが便利そうだなーとおもってたのですが。
でもc++23関係はそんな変わってないな……。
いまはQtでガリガリやってるので、コンパイラとしてのvc++が変わってないのならまだアップデートしなくてもいいかな……。
なにげにVisualStudioはCドライブに入れないといろいろと面倒おこるらしいってことでCドライブのあるSSDにインスコしてるので……。すこしでもSSDの寿命伸ばすために更新は最低限に……(貧乏性)
んでc++23関係更新ないのかなーと確認してたらば。
ちょうど設定部分の書き直しの際に、QSettingsてenumで設定してる情報の書き込みが結構めんどうだったりするのですが。
保存時のenum→intは良いのですが、逆の読み込み時のint→enumてのが問題アリアリで。
c/c++の規約ではintの値がenumの範囲外の場合のcastに関しては、動作は「未定義」なんですよね。
この辺、範囲チェックとかちゃんとやろうと思うとswitch~case文で該当のものがあるかチェックしたりとかなんだかめんどくさい事になるんですよね。
ただ、0から始まる連番で飛びや抜けのない並びのものなら一番最後の要素が最大値になるのでチェックはまだやりやすいわけで。
そう言うの専用のチェック用の汎用関数作っとくかってことで、templateでenumかどうかってのは~enable_ifでstd::is_~から……あったstd::is_scoped_enumだな。
ってかんじでインテリセンスでみてたらばっちりあったのでそのまま使ったのだけども。vc++のc++23の対応表みてたらばstd::is_scoped_enumてc++23からやったのね。
いままでなかったのかコレ……。
そしていつになったらif consteval来るんだよvc++……。
そして夜はまだ涼しいな。
この時期の夜はとても過ごしやすくていろいろと捗る~
室温も30度ぐらいだったし。
まあクーラーはちょっとだけ試運転もかねてつけたけど。
つけたら寒くなったのでちょっとつけたあとすぐ消したり(ぉ
今日の作業は、相変わらず設定まわりのuiがりごり。
単純な文字列入力部分の履歴から入力したり、その履歴の管理をするプチダイアログは以前のコードだとQtのフォームデザイナでつくってたんだけど。
Qtのフォームデザイナで生成すると、xxxx.cppとxxxx.hとxxxx.uiが生成されるんですよね。
最近は基本、なんでもヘッダオンリーで.cppは使わないコーディングに移行してるので、フォームデザイナ使うとそこだけcppも生成されるのがなんか汚された感あってなんかヤダ。
っていう感覚は以前からあって。
でもまあ、先日の設定画面みたくそこそこ中身詰まってるようなものはデザイナ使わないとシンドい……てのはあったのだけども。
ちょっとした数個程度のコントロールあるだけのやつにまで.cppとか.uiまで生成されるのもなぁ。
あと、この方法で作った物って、部分だけコピーてのが難しいんですよね。
いや使い回すの前提ならそこだけ別のコントロールとして切り出して分けておくってのもできるっちゃできるんですが。
1画面でガリゴリレイアウトを作ったうえで、あとからこの部分切り出したいなって時に
ui部分のコピーだけならできるんですけど、ボタン押したあとの動作とかそのへんまではコピーできないわけで。
やろうと思うとその部分の.hと.cppのソースコード両方をコピペする必要があって。
それがなかなかめんどい。
んで、フォームデザイナ使わないでそのままソースコードオンリーで記述する方法もあったりするんですけど。
結構泥臭いやり方なのと、こまかなデザインの修正とかが難しい……ってのもあって結局デザイナ使ったほうがいいのかなぁとおもってたのですが。
とりあえずソースコードオンリーのも試してみるかってことで今回やってみることに。
右下の履歴編集のダイアログとそのソース部分。
上の方から順番に入れ物用意して積み上げていく感じで……まあ簡単なものならこれでもいいかなぁという気もしないでもない。
でもQVBoxLayoutとかQPushButtonとか使用するコントロール増えるたびにそれぞれ#include
デザイナ経由だと、自動で.uiに追加されビルド時にui_xxxx.h内にincludeの項目が自動で追加される感じで自動化されてるんだけど。
あとやっぱ細かいレイアウトの調整とかやりたくなったときソースコードのみでやるのはしんどいなこれ。わかってたこととは言え。
大まかなレイアウトにそんな気を使わないレベルのものにしか使えないぽ。
ただメリットも結構あって。
ヘッダオンリーで記述してるので、コピペが簡単。
別のプロジェクトに同じものを使いたいってなったら.hをプロジェクトに追加するだけですぐ使える。
部分的に使い回す際も、ボタンの動作とかも、画像のソースコード部のしたのほうにある
connect(button_add, &QPushButton::clicked, this, &StringHistryEditDialog::on_button_add_clicked);
button_addっていうプッシュボタンオブジェクトのclicked()が発信されるとthis(自分自身)のon_button_add_clicked()メソッドを実行するよっていう文なのですが。
この文コピーしてon_button_add_clicked()を追加して中身を書くだけで再利用可能になるわけですよ。
使いまわしという点では、ソースコードオンリーのがはるかに取り回しが便利だなぁと。
なんだかんだで結局はデザイナで作ったほうが面倒無いのかも……と思ってたけど、実際に組んでみると、ソースコードオンリーのが便利な気がしてきた……。
まあ小物に限るっていう但し書きはつくだろうけど。
あとはVisual Studio 2022 バージョン 17.6来てたな。
リリースノートの方で17.6だと、class名のところからポップアップでてそこからデフォルトコンストラクタ(メンバの初期化付き)とか等値演算子とかをワンタッチで追加できるようにってのが便利そうだなーとおもってたのですが。
でもc++23関係はそんな変わってないな……。
いまはQtでガリガリやってるので、コンパイラとしてのvc++が変わってないのならまだアップデートしなくてもいいかな……。
なにげにVisualStudioはCドライブに入れないといろいろと面倒おこるらしいってことでCドライブのあるSSDにインスコしてるので……。すこしでもSSDの寿命伸ばすために更新は最低限に……(貧乏性)
んでc++23関係更新ないのかなーと確認してたらば。
ちょうど設定部分の書き直しの際に、QSettingsてenumで設定してる情報の書き込みが結構めんどうだったりするのですが。
保存時のenum→intは良いのですが、逆の読み込み時のint→enumてのが問題アリアリで。
c/c++の規約ではintの値がenumの範囲外の場合のcastに関しては、動作は「未定義」なんですよね。
この辺、範囲チェックとかちゃんとやろうと思うとswitch~case文で該当のものがあるかチェックしたりとかなんだかめんどくさい事になるんですよね。
ただ、0から始まる連番で飛びや抜けのない並びのものなら一番最後の要素が最大値になるのでチェックはまだやりやすいわけで。
そう言うの専用のチェック用の汎用関数作っとくかってことで、templateでenumかどうかってのは~enable_ifでstd::is_~から……あったstd::is_scoped_enumだな。
ってかんじでインテリセンスでみてたらばっちりあったのでそのまま使ったのだけども。vc++のc++23の対応表みてたらばstd::is_scoped_enumてc++23からやったのね。
いままでなかったのかコレ……。
そしていつになったらif consteval来るんだよvc++……。
そして夜はまだ涼しいな。
この時期の夜はとても過ごしやすくていろいろと捗る~
Sun
Mon
Tue
Wed
Thu
Fri
Sat
01
02
■
■
今週気づいたこと
03
[憲法記念日]
04
[みどりの日]
05
[こどもの日]
06
07
08
09
10
11
12
13
14
15
■
■
少しずつでも
16
■
■
暑い寒い
17
18
■
■
あほかっ
19
■
■
おもったほどでは
20
21
22
■
■
タイトルがしんどい
23
24
25
26
■
■
下手の考え休むに似たり
27
28
■
■
細かいところで
29
30
31
total:2080303 t:2673 y:180
■記事タイトル■
■年度別リスト■
2024年
2024年12月(0)2024年11月(0)
2024年10月(1)
2024年09月(2)
2024年08月(1)
2024年07月(1)
2024年06月(5)
2024年05月(2)
2024年04月(1)
2024年03月(6)
2024年02月(4)
2024年01月(3)
2023年
2023年12月(3)2023年11月(1)
2023年10月(2)
2023年09月(3)
2023年08月(3)
2023年07月(3)
2023年06月(7)
2023年05月(8)
2023年04月(2)
2023年03月(1)
2023年02月(2)
2023年01月(3)
2022年
2022年12月(4)2022年11月(3)
2022年10月(1)
2022年09月(3)
2022年08月(3)
2022年07月(2)
2022年06月(1)
2022年05月(3)
2022年04月(2)
2022年03月(2)
2022年02月(1)
2022年01月(6)
2021年
2021年12月(8)2021年11月(3)
2021年10月(4)
2021年09月(6)
2021年08月(2)
2021年07月(1)
2021年06月(3)
2021年05月(2)
2021年04月(2)
2021年03月(3)
2021年02月(1)
2021年01月(4)
2020年
2020年12月(3)2020年11月(7)
2020年10月(2)
2020年09月(3)
2020年08月(1)
2020年07月(3)
2020年06月(7)
2020年05月(5)
2020年04月(8)
2020年03月(4)
2020年02月(2)
2020年01月(4)
2019年
2019年12月(1)2019年11月(1)
2019年10月(2)
2019年09月(1)
2019年08月(3)
2019年07月(2)
2019年06月(2)
2019年05月(2)
2019年04月(4)
2019年03月(1)
2019年02月(7)
2019年01月(1)
2018年
2018年12月(1)2018年11月(1)
2018年10月(5)
2018年09月(1)
2018年08月(5)
2018年07月(1)
2018年06月(1)
2018年05月(1)
2018年04月(2)
2018年03月(2)
2018年02月(1)
2018年01月(1)
2017年
2017年12月(2)2017年11月(1)
2017年10月(2)
2017年09月(5)
2017年08月(8)
2017年07月(2)
2017年06月(1)
2017年05月(1)
2017年04月(3)
2017年03月(5)
2017年02月(7)
2017年01月(8)
2016年
2016年12月(7)2016年11月(2)
2016年10月(3)
2016年09月(7)
2016年08月(8)
2016年07月(10)
2016年06月(17)
2016年05月(6)
2016年04月(8)
2016年03月(10)
2016年02月(5)
2016年01月(10)
2015年
2015年12月(7)2015年11月(7)
2015年10月(13)
2015年09月(7)
2015年08月(7)
2015年07月(5)
2015年06月(4)
2015年05月(5)
2015年04月(2)
2015年03月(4)
2015年02月(1)
2015年01月(7)
2014年
2014年12月(12)2014年11月(8)
2014年10月(4)
2014年09月(6)
2014年08月(7)
2014年07月(4)
2014年06月(2)
2014年05月(5)
2014年04月(4)
2014年03月(8)
2014年02月(4)
2014年01月(8)
2013年
2013年12月(15)2013年11月(8)
2013年10月(3)
2013年09月(3)
2013年08月(8)
2013年07月(0)
2013年06月(0)
2013年05月(0)
2013年04月(0)
2013年03月(0)
2013年02月(0)
2013年01月(0)
■レス履歴■
■ファイル抽出■
■ワード検索■
堕天使の煉獄
https://rengoku.sakura.ne.jp
管理人
織田霧さくら(oda-x)
E-mail (■を@に)
oda-x■rengoku.sakura.ne.jp