2

4つのQTextEditウィジェットを含むQSplitterがあります。QObject :: findChildrenを使用して、ウィジェット内のすべてのウィジェット(私の場合はQSplitter)のリストを受信できることは知っていますが、現在のウィジェットを判別する方法がわかりません。

4

1 に答える 1

2

コメントで述べたように、フォーカスのある QTextEdit を探していたので、基本的に 2 つのオプションがあります。

  1. QApplication::focusWidget() を使用します (http://doc.qt.digia.com/qt/qapplication.html#focusWidget)
  2. QSplitter のすべての子をループし、それぞれに hasFocus() を呼び出して、どの子にフォーカスがあるか (キーボード フォーカス) を知ることができます。

最初のアプローチの主な欠点は、そのウィジェットが QSplitter に属しているかどうかを (直接使用して) 確認できないことです。2 番目のアプローチは少し非効率に聞こえるかもしれませんが、QSplitter に多くのウィジェットがない場合は、まったく問題ありません。

(OPの)コメントで指摘されているように、あなたは2番目のアプローチを選択しました.OPには彼の質問に答えるのに十分な評判がなかったので、私はここに答えを投稿しています.

于 2012-11-28T17:45:50.797 に答える