2015-09-15 9 views
7

からテキストを選択することができますQMessageBoxを選択可能なテキストで表示する方法はありますか?そのため、マウスやキーボードを使用して内容を選択してコピーすることはできますか?私はそれを行うラベルを作成することができますが、メッセージボックスについてはわかりません。 MS Windowsの標準的なメッセージボックスは間違いなくそれを可能にしているようです。QMessageBox

+0

'QMessageBox'の' setTextInteractionFlags'は 'Qt :: TextSelectableByMouse'に設定されますか? – Gombat

答えて

7

が、私はこの使用してスタイルシートを解決することを好みます。
を実行し、この度、これは、アプリケーション内の任意の場所に作成されたすべてのメッセージボックスに影響を与えます:

qApp->setStyleSheet("QMessageBox { messagebox-text-interaction-flags: 5; }"); 

私はOS XのためのQt 5.5でテストこれをしましたし、それが動作します。

+0

既存のスタイルシートに追加するか、完全に上書きしますか?誰かがそのプロジェクトのどこかで似たようなコードを使っていないのかどうかはわかりません。 – Petr

+0

'QApplication'に適用されている既存のスタイルシートを上書きします。すでにスタイルシートを使用している場合は、ファイルにこのエントリを追加するだけです。 –

7

あなたはTextSelectableByMouse対話フラグを有効にする必要があります。

QMessageBox mb(QMessageBox::NoIcon, "New message", 
       "A lot of text", QMessageBox::Ok, this); 
mb.setTextInteractionFlags(Qt::TextSelectableByMouse); 
int dialogResult = mb.exec(); 
+0

これはQt4では動作しないようです。 ***エラーC2039: 'setTextInteractionFlags': 'QMessageBox'のメンバーではありません*** – drescherjm

+0

Qt-5.1で追加されました。複雑なライブラリの依存関係のため、私が作業しているアプリケーションではQt5を使用できないため、スタイルシートを使用しなければなりませんでした。 – drescherjm

関連する問題