過去の記事は↓
QtをVisual C++ 2008 Express Editionで使えるようにしてみる: Qtで遊ぶ 其の1
少しずつQtのソース見つつ調べつつでやってきたメモ的な何か
ウィジェット関連の何か
QProgressBarでマーキー(marquee、メモリが左右に動くなどして進捗の終了が不明の場合に使うスタイル)で表示するには、QProgressBar.setRange(0, 0)
のように範囲の最小と最大を共に0にすれば良いようだ。
その他、ウィジェットをカスタマイズする時などに参考になりそうなメモ
シグナル&スロット関連の何か
アルゴリズム的な何か
Qtでスマートポインタ使う場合は、QSharedPointer
やQScopedPointer
がある。
あと、QObjectの派生クラスは、コンストラクタで親を指定すると親の破棄で勝手に削除してくれるらしい。
ディレクトリ、ファイル関連の何か
ディレクトリ移動は、QDir::setCurrent()
で出来るようだが、ディレクトリの区切りが最後に無いとうまくいかないようだ。
プロセス間通信の何か
子プロセスの終了時にシグナルを呼ばれるようにするには finished()
を connect
すればいいようだ。
他にも標準出力やエラー出力を取得した時などのシグナルがあるようだ。
試したところ、なぜか、強制終了した場合も正常終了となってしまうようだが、、、もうすこし調べる必要はあるようだ。
Window メッセージをQtで取得するには↓をオーバーライドすればいいらしい
QApplication::winEventFilter(MSG*)
コーディング規則など
多言語対応な何か
標準ツールを日本語で使うには...
インストールディレクトリ直下の translations フォルダの *_ja.ts を lrelease で変換してあげればよいようです。
ただ、何故か Linguist はうまく日本語にならなかったです。
ファイルを読み込んだときの文字化けを解消するため↓を先頭に書く
リンク先では埋め込み文字列が云々と書かれているが、ファイルから様だと気にも影響があるようだ(別のページで見たけどそのページが見つからない...)。
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
そのほか実際の実装などについてのメモ