エラー処理(メッセージ表示)が入っていない
#「Sunaba」が一段落付いたので…
サーバー接続先として、ホスト名もしくはIPアドレスを指定できますが、VMware上の仮想マシンで走るWindowsXPはDHCPによるIP取得のため、IPが変わってしまうことがあります。その際接続に失敗するのですが、おもむろにbash windowにエラー(error)が表示されますが、GUIとしては全くうんともすんともいいません。
とりあえず、これでは使ってもらうわけにはいきませんね。
サーバへの接続に失敗することは、かなり重要なエラーなので、適切にユーザに知らせる必要がありますね。
で、「入門Qt4プログラミング」を流し読みした記憶を辿り、「なんかメッセージを出すクラスがあったよなぁ」ということを思い出しました。
P.63あたりでしょうか。すでに使っていました。QMessageBoxというクラスです。
「このアプリケーションについて」ウィンドウを出したい時は、QMessageBox::about() を、
「ワーニング(Warning)メッセージ」を出したい時は、QMessageBox::warning() を、
「重要(critical)なメッセージ」を出したい時は、QMessageBox::critical() を、
実行すればいいらしいです。その他には、
QMessageBox::information() : 一般的な情報
QMessageBox::question() : 質問
QMessageBox::aboutQt() : Qtについて
などがありますね。
引数にはメッセージの内容、ウィンドウに出すボタンの種類などいろいろ渡せるのですが、これについてはQt AssistantでQMessageBoxを検索して、確認できます。渡せる引数は大体同じ内容なので、1パターン覚えれば大丈夫ではないでしょうか。
例えば、「このアプリケーション」ダイアログは以下のようにして出しています。
// display About Dialog void Brynhildr::about() { // display About Message Box QMessageBox::about(this, "About " QTB_APPLICATION, "<h2>" QTB_APPLICATION " Ver. " QTB_VERSION "</h2>" "<p>Copyright ©" " " QTB_YEAR " " QTB_ORGANIZATION " powered by MCZ."); }
エラー処理では重要なメッセージとして表示する必要があるので、QMessageBox::critical()を使うべきだと思われます。ちょっとこれから実装してみます( ^ω^ )
(追記)
場当たり的に実装するのは簡単なのですが、メッセージの管理がいずれ煩雑になります、そのあたりも含めての実装になるので、少し時間がかかるかも知れません…
« ぜんぜん関係ありません | トップページ | メッセージの管理について考える »
コメント