QGridLayoutの詳細が分からなかったのであまり弄らないつもりでしたが、.uiファイルを見ているとやりたいことは一通りできそうなので少し調べてみました。
そもそも論として.uiファイルはxmlで記述されていて、そこの仕様が惜しいところで把握できなく…
Qt Widgets Designer's UI File Format(https://doc.qt.io/qt-6/designer-ui-file-format.html)
さらに見ていくとデザイナーなるアプリが存在していることも知ることができました。
最初は自動生成された.hを直接修正するとかイミフなことをやってたぐらいですw
デザイナーを使うためにQtのインストールをしようかと調べてみると、ユーザー登録とかなんか面倒そうなので途方に暮れてたところ、gitでダウンロードした中に .deps\obs-deps-qt6-2024-09-12-x64 / bin がありその中に一式ありそうでした。
試しに起動してみると見事にデザイナーが開き、.uiファイルを開いても正しく読み込めました。一番知りたかったのがストレッチとスペーサーの違い。xml記述だとスペーサーに統合されているようで、ストレッチが記述できそうにないところまでは分かったのですが、実際にどんなパラメータを並べればストレッチのようになるのか知りたかったので、デザイナー上でスペーサーを追加し、保存したファイルの中を見てみることに。
その結果、
<spacer>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</spacer>
とすれば、今回必要だった縦方向に伸び縮みするエリアができてくれました。ストレッチのヒントとかデザイナーではデフォルトで追記するようになっていましたが、今回は省いても問題なしと判断。
そんな感じで出力タイマーの.uiファイルを弄っていて、気になったのが出力タイマー画面のデザイン。使い始めたときから気になっていた画面ではありますが、明らかにグリッドに配置されているセルの扱いがヤッツケ感が高いというかw
なのでcolspanを設定して変な余白が出ないようにするとこんな感じに。
ウィンドウ自体もここまで縮まるようになりました。キャンセルボタンの有効化/無効化はボタンの表示の切り替わるタイミングで行うようにして画面レイアウトもひとまず終了。
0 件のコメント:
コメントを投稿