« ぜんぜん関係ありません | トップページ | メッセージの管理について考える »

2014年6月 9日 (月)

エラー処理(メッセージ表示)が入っていない

#「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.");
}

20140609_225334

エラー処理では重要なメッセージとして表示する必要があるので、QMessageBox::critical()を使うべきだと思われます。ちょっとこれから実装してみます( ^ω^ )

(追記)
場当たり的に実装するのは簡単なのですが、メッセージの管理がいずれ煩雑になります、そのあたりも含めての実装になるので、少し時間がかかるかも知れません…

« ぜんぜん関係ありません | トップページ | メッセージの管理について考える »

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: エラー処理(メッセージ表示)が入っていない:

« ぜんぜん関係ありません | トップページ | メッセージの管理について考える »