2012-03-07 11 views
0

メインウィンドウがあり、存在しないオープンファイルを試しているときにstatusareaメッセージで表示しようとしています。QT showstatusのヒントは、マウスがウィンドウを離れて戻った後にのみ表示されます。

void MainWindow::onOpenClicked(){ 
    if(QFile(ui->lineEditCapture->text()).exists()){ 
     // allow opening for analyze 
    }else{ 
     setStatusTip("Can't open file, check if the file name is correct"); 
    } 
} 

問題は、マウスポインタがウィンドウを離れて戻った後にのみstatustipが表示されることです。私は、コンストラクタで

setStatusTip("Can't open file, check if the file name is correct"); 

を行う際

はまた、その後statustipがすぐに表示されます。

何が間違っている可能性がありますか?

編集: setStatusTipがスロット内にある場合、正常に動作していないようですが、setStatusTipが通常の方法であれば、正常に動作します。

答えて

1

setStatusTipの代わりにshowMessage関数を使用してください。

タイムアウトは0(デフォルト)の場合、メッセージが残っ clearMessage()スロットが呼び出されるまで表示されたり、showMessage()スロットが と呼ばれるまで:あなたはメッセージが表示されますどのくらいの時間を制御することができますこの方法もう一度メッセージを変更します。

if (statusBar()) 
    statusBar()->showMessage("Can't open file, check if the file name is correct"); 
+0

私はすでにこれを試してみましたが、それは予想通り、私はこれを使うことになると思います動作します。 しかし、なぜそれをsetstatutipで設定するのがスロットではうまくいかないのですか?それは何らかのバグですか? – Jan

+1

'setStatusTip'はステータスバーに何かを一時的に表示したいときなどに使用します。例えば、ボタンの上をホバーしているときなどです... – pnezis

+0

私は間違ったことを理解しています。メッセージ。それは、マウスがメインウィンドウに入る場合にのみ表示される理由です。ありがとう、それはとても単純で愚かでした – Jan

関連する問題