如何在浮动 Dockwidgets 期间获得 focuswidget
How to get focuswidget during floating Dockwidgets
请图片:有一个MainWindow有一个dockwidget。
dockwidget 有一个 QTextEdit
对象。
Dockwidgets 可以从附加的 window 中取出并移动到任何地方。
当我编辑 QTextEdit 时,我从 QMainWindow
区域通过 focusWidget()
方法调用它,而不浮动 dockwidget。
<__main__.xxxxxxxxxx object at 0x000002815D638388>
这个地址是QTextEdit的一种(xxxxxxxxxx因为是我的Subclass)。
dockWidget浮动时,我用focusWidget()
,
调用
<PySide.QtGui.QTabBar object at 0x000002816A206C88>
不管 dockwidget 的条件如何,我都想得到相同的 widget。
请使用QtGui.QApplication.focusWidget()
您可以从任何地方获取当前的 focusWidget。
拜托,另见此处
QtGui.QApplication.focusWidget()
:添加解决方案
上面的方法和解决方法不好
您可以将 dockwidget 的主窗口全球化,(f-ex g_win)
global g_win
g_win = mainwindow()
并且覆盖小部件的 focusInEvent()
def focusInEvent(self,event):
## you can get the address anywhere
g_win.current_widget = self
return TheWidget.focusInEvent(self,event)
您可以拨打 g_win.current_widget
并在任何地方获取它。
之后,您可以将您的代码应用到小部件中。
请注意使用全局语句。
但主窗口可能被用作全局窗口 class。
我觉得这个最有用了
请图片:有一个MainWindow有一个dockwidget。
dockwidget 有一个 QTextEdit
对象。
Dockwidgets 可以从附加的 window 中取出并移动到任何地方。
当我编辑 QTextEdit 时,我从 QMainWindow
区域通过 focusWidget()
方法调用它,而不浮动 dockwidget。
<__main__.xxxxxxxxxx object at 0x000002815D638388>
这个地址是QTextEdit的一种(xxxxxxxxxx因为是我的Subclass)。
dockWidget浮动时,我用focusWidget()
,
<PySide.QtGui.QTabBar object at 0x000002816A206C88>
不管 dockwidget 的条件如何,我都想得到相同的 widget。
请使用QtGui.QApplication.focusWidget()
您可以从任何地方获取当前的 focusWidget。
拜托,另见此处
QtGui.QApplication.focusWidget()
:添加解决方案
上面的方法和解决方法不好
您可以将 dockwidget 的主窗口全球化,(f-ex g_win)
global g_win
g_win = mainwindow()
并且覆盖小部件的 focusInEvent()
def focusInEvent(self,event):
## you can get the address anywhere
g_win.current_widget = self
return TheWidget.focusInEvent(self,event)
您可以拨打 g_win.current_widget
并在任何地方获取它。
之后,您可以将您的代码应用到小部件中。
请注意使用全局语句。
但主窗口可能被用作全局窗口 class。
我觉得这个最有用了