一个QSplitter并找到当前的小部件

时间:2012-11-28 16:04:45

标签: qt

我有一个QSplitter里面有四个QTextEdit小部件。我知道我可以使用QObject :: findChildren来接收一个包含小部件内所有小部件的列表(在我的情况下在QSplitter中),但我无法弄清楚如何确定哪一个是当前的小部件?

1 个答案:

答案 0 :(得分:2)

如评论中所述,您正在寻找具有焦点的QTextEdit,因此基本上有两种选择:

  1. 使用QApplication :: focusWidget()(http://doc.qt.digia.com/qt/qapplication.html#focusWidget)
  2. 遍历QSplitter的每个孩子并为每个孩子调用hasFocus(),这样你就可以知道哪些孩子有焦点(键盘焦点)
  3. 第一种方法的主要缺点是你不能确定(直接使用它)该小部件是否属于QSplitter。第二种方法可能听起来有点无用,但如果你的QSplitter没有很多小部件,那么它将完全没问题。

    正如(OP的评论)中指出的那样,你选择了第二种方法,我就是那里发布答案的方法,因为OP没有足够的声誉回答他的问题。