緑之庵(緑之杜)ぐうたらプログラマの不定期更新日記。最近さっぱり記事を書いていませんが、近々再開予定です。サークル名に合わせてタイトル修正しましたが、まだどちらにするか悩んでいます。艦コレ絶賛はまり中の隠者です。先ほど、初めて撃沈を体験しました。改造直前だし、中破だけどイベントボス戦だから、いけるかなと思ったのですけど、がっかりです。最後にスクリーンショットとっておくべきでしたね・・・。そんな艦コレ専用ブラウザの艦メモですが、先日の記事に載せたように、タイマーダイアログが英語版だとうまくダイアログ内に収まっていませんでした。Dialogですが、QDialogの中にQQuickViewを入れてあり、実際のダイアログはQMLで作成されています。Setで呼ばれる一覧等は、先日の日記の伊織さんのコメントから、ダウンロードされている事がわかりました。このQDialogですが、uiファイルでサイズが固定にされていました。後からQMLを変更したり、フォントなどの関係で、どうしてもQML部のサイズが事前に固定できない場合が出てきます。timerDialog.qmlのrootのRectangleはサイズ指定がありません。内部のColumnに表示されるItemの分だけ自動でサイズが決まるようです。QQuickViewの内部のコンテンツサイズを取得するにはどうしたらよいのでしょうか。QQuickView::rootObjectで、rootのQQuickItemを取得し、QQuickItem::childrenRect()を取り出せば、子のRectが入手できます。あとは、そのsizeに適度なマージンを入れて、QDialogのsetMinimumSizeとsetMaximumSizeに設定してあげれば、QMLのサイズに合わせてダイアログのサイズを固定できそうです。QSize(DIALOG_MARGIN,DIALOG_MARGIN);setMinimumSize(contentSize);setMaximumSize(contentSize);}}childrenRectは、RectFを返すので、toRect()でRect化した後、size()を取って、それにマージンを加えています。Requestしてみますか。Japan文系出身のなんちゃってプログラマーです。C++、苦手な言語はLisp(カッコが多すぎて目で追えないので)。基本的にミドル部分中心になりつつありますが、なんでも屋的なくらいの範囲にかけて広く、できるだけ深く手を出すようにしています。最近は、趣味的にはQtとAndroidに注目しています。専門家というよりは、特定の分野、特定の技術、特定の言語にとらわれず、オールマイティーに生きられるそんなエンジニアを目指して行きたいなと思っています。ちなみに、アニメやファンタジー、ライトノベルも大好きなわりとオタク系な残念な人です。