2012-11-28 45 views
2

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

+0

这是什么意思是当前的? QTextEdit有哪些重点? –

+0

是的,有重点的。 – Milen

+0

不要以为存在了QSplitter的方法来做到这一点,但也许的QApplication :: focusWidget()的帮助:http://doc.qt.digia.com/qt/qapplication.html#focusWidget –

回答

2

正如评论说,你正在寻找与焦点的QTextEdit,所以有两个选择,基本上是:

  1. 使用的QApplication :: focusWidget()(HTTP://doc.qt。 digia.com/qt/qapplication.html#focusWidget)
  2. 遍历你了QSplitter的每一个孩子,并呼吁hasFocus()为每一个这样你就可以知道哪些人具有焦点(键盘焦点)

第一种方法的主要缺点是你无法确定(直接使用它)该小部件是否属于QSplitter。第二种方法可能听起来有点不太合适,但是如果你的QSplitter没有很多小部件,那么它将会非常好。

如(的OP)的评论中指出,你选择了第二种方法,而我是一个在这里张贴的答案,因为OP没有足够的信誉来回答他的问题。

相关问题