我有一个扩展的主窗口,其中QtGui.QTabWidget
添加了一个。我正在创建几个扩展的小部件QtGui.QWidget
,我可以从中添加和删除到选项卡小部件。
我想做的是有一个“弹出”按钮,导致子小部件从选项卡小部件中删除并作为它自己的独立窗口出现(以及一个“弹出”按钮将其放回主窗口)。与 Gtalk-in-Gmail 的想法相同。请注意,如果我关闭主窗口,其他“选项卡”或“窗口”也应该关闭,并且我应该能够并排放置所有窗口并让它们都可见并同时更新。(我将显示近乎实时的数据)。
我是 Qt 的新手,但如果我没记错的话,如果 Widget 没有父级,它会独立出现。这行得通,但是我不知道如何将窗口“弹出”回。
class TCWindow(QtGui.QMainWindow):
.
.
.
def popOutWidget(self, child):
i = self.tabHolder.indexOf(child)
if not i == -1:
self.tabCloseRequested(i)
self.widgets[i].setParent(None)
self.widgets[i].show()
我的直觉说,两者之间应该仍然存在父/子关系。
有没有办法让父母保持独立但仍然让窗口独立出现,或者我误解了Qt的风格?
否则,在孩子中创建一个变量来保存指向主窗口的链接(如self.parentalUnit = self.parent()
)是一个好主意还是一个 hackish/kludgy 的主意?