我有一个 QSplitter,里面有四个 QTextEdit 小部件。我知道我可以使用 QObject::findChildren 来接收一个包含小部件内所有小部件的列表(在我的情况下是 QSplitter),但我不知道如何确定哪个是当前的?
问问题
419 次
1 回答
2
正如评论中所说,您正在寻找具有焦点的 QTextEdit ,因此基本上有两个选项:
- 使用 QApplication::focusWidget() (http://doc.qt.digia.com/qt/qapplication.html#focusWidget)
- 遍历 QSplitter 的每个孩子并为每个孩子调用 hasFocus() ,这样您就可以知道他们中的哪一个具有焦点(键盘焦点)
第一种方法的主要缺点是您无法确定(直接使用它)该小部件是否属于 QSplitter。第二种方法可能听起来有点低效,但是如果您的 QSplitter 没有很多小部件,那么它会非常好。
正如(OP)评论中指出的那样,您选择了第二种方法,我是在这里发布答案的人,因为 OP 没有足够的声誉来回答他的问题。
于 2012-11-28T17:45:50.797 回答