我有一个扩展的主窗口,其中添加了一个QtGui.QTabWidget。我正在创建多个扩展自QtGui.QWidget的小部件,可以将其添加到选项卡窗口中并删除。
我想做的是有一个“弹出”按钮,使子部件从标签窗口中移除并提取为独立的窗口(还有一个“弹入”按钮将其放回到主窗口)。与Gmail中的Gtalk类似的概念。
请注意,如果我关闭主窗口,则其他“选项卡”或“窗口”也应关闭,并且我应该能够将所有窗口并排放置并同时显示和更新它们。 (我将显示几乎实时的数据)。
我是Qt的新手,但如果我没弄错的话,如果一个小部件没有父级,它会作为独立的窗口显示。这很有效,但我不知道如何“弹回”窗口。
我想做的是有一个“弹出”按钮,使子部件从标签窗口中移除并提取为独立的窗口(还有一个“弹入”按钮将其放回到主窗口)。与Gmail中的Gtalk类似的概念。
请注意,如果我关闭主窗口,则其他“选项卡”或“窗口”也应关闭,并且我应该能够将所有窗口并排放置并同时显示和更新它们。 (我将显示几乎实时的数据)。
我是Qt的新手,但如果我没弄错的话,如果一个小部件没有父级,它会作为独立的窗口显示。这很有效,但我不知道如何“弹回”窗口。
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的想法呢?