さて、先月に続いて今月も参加した Qt 勉強会 @ Nagoya No7(17.04) - connpass のまとめ。
つぶやきは Qt勉強会 Tokyo #46 + Nagoya # 7 つぶやきまとめ - Togetterまとめ でまとめられています。
今月は先月から作り始めた、長文投稿専用Twitterクライアントの開発をしました。
レポジトリは ... sharkpp/Jugemutter: 長文投稿専用クライアント「じゅげむったー」 です。
はじめに
会場に到着する前のこと。
マクドナルドで昼食を食べ、いざ会場へ行かん、としたところで、外を見ると土砂降り,とまでは行かないけれど雨がザーザー
慌ててコンビニで傘を買って行きましたとさ。 いや、まさか雨が降るとは思わず、折り畳み傘をカバンに入れてなかったのです。
会場に着くと、主催の @nekomatu さん以外おらず。 もともと @IoriAYANE さんも調子を崩して参加できず、だったので特に人数が少なかった。
しばらくして、最後の一人も到着で、もくもく開始。
本日のおやつ #qtjppic.twitter.com/HhGVbaUAWk
— 夜は短し歩けよさめたすたす (@sharkpp) 2017年4月15日
やったこと
ドキュメントを見つつ、画面周りを作成。
QtCreator みたいに左側にツールバーを設置してみようと思うが、どうやらデザイナ上ではウィジェットとしてツールバーは設置できないようだ。
「How to change toolbar layout in Qt Creator? - Stack Overflow」 を見ると、 .ui
を直接触れって書いてあって、確かにできるんだけど... いいのかな?
QPlainTextEdit
の画面内の余白、
を計算するうまい方法はないものかと、探すも見つからず。
QWidget::contentsMargins()はどうも違うらしい。
QLabel
の文字色は ... そうだ、そうだ。
foregroundRole()
を使うんだ、とか。
調べながら、コードを書いているとなかなか進まないなぁ。
成果
とりあえず、なんとなくの画面はできてきた感じ。
もうちょっとで文章を分割してつぶやけるところまて行ったけど、残念ながら時間切れ。
- 分割して投稿
- 文章をWYSIWYGで編集&プレビューしたい
- 投稿のレジューム機能
- マルチアカウント管理
とか、まだまだ先は長そうだ。
知ったこと
- Qt
Q_PROPERTY
はsetProperty()
/property()
でアクセスできるようにするマクロ。 何回か、同じ勘違いをやっているけど、 setter/getter を自動で作る機能ではない。- パスに日本語が含まれていると qmake が失敗するらしい、このご時世に。
- QtCreator
- のソースエディタで、変数の後に
.
を入力すると->
に変換される。便利! - デザイナ上でツールバーを削除してしまった場合は、オブジェクトインスペクタ?上の
QMainWIndow
を右クリックして「ツールバーを追加」で追加できる。 QDesignerCustomWidgetCollectionInterface
とか長ったらしい名前はQDCW
と入力すれば補完される! 参考:Qt Creator を便利に使いこなそう - Qiita # キャメルケース対応の補完を最大限に活用しようQString m_xxx;
などとメンバ変数を定義して、「リファクタリング」を実行すればsetXxx()
とxxx()
つまり setter/getter の宣言と実装の枠組みが自動で追加される。 参考:* c++ - Auto-generate setters/getters with QTCreator? - Stack Overflow
- のソースエディタで、変数の後に
参考
- How to change toolbar layout in Qt Creator? - Stack Overflow
- qt - QTextEdit sets fix line Height, paragraph spacing - Stack Overflow
- c++ - qplaintextedit line spacing - Stack Overflow
- Qt Creator を便利に使いこなそう - Qiita
- qt - QLabel: set color of text and background - Stack Overflow
- The Property System | Qt Core 5.8
- c++ - Auto-generate setters/getters with QTCreator? - Stack Overflow