gpt4 book ai didi

python - 使用 QWorkspace 级联

转载 作者:太空宇宙 更新时间:2023-11-04 06:23:35 24 4
gpt4 key购买 nike

我试图用我自己的级联和平铺定义重载 QWorkspace 类,但是当我尝试使用 .move 函数时,它会相对于子窗口移动内部小部件,而不是相对于工作区移动子窗口.

这是我使用的代码:

class MdiArea(QWorkspace):
def tile(self):
if len(self.windowList()) < 2:
return

def cascade(self):

if len(self.windowList()) < 2:
return

windows = []
for window in self.windowList():
windows.append((window.width(), window.height(), window))

windows.sort()
#
x = 0
y = 0
endX = self.width() - min(windows[-1][0], self.width())
endY = self.height() - min(windows[-1][1], self.height())

for i in range(len(windows)):

x = i * 10
y = i * 10

width, height, window = windows[i]
window.move(x, y)

window.raise_()

这是最终对我有用的代码(特别注意“parent()”的添加):MdiArea 类(QWorkspace): 定义瓷砖(自己): 打印 self.width() 如果 len(self.windowList()) < 2: 返回 我=0 对于 self.windowList() 中的窗口: x = i * window.parent().width() y = 5 窗口.parent().move(x, y) window.parent().raise_(​​)
我=我+1

def cascade(self):
if len(self.windowList()) < 2:
return
i=0
for window in self.windowList():
x = i * 15
y = i * 30
window.parent().move(x, y)
window.parent().raise_()
i=i+1

最佳答案

每个窗口小部件都放在框架小部件中,因此框架小部件是该小部件的父小部件。所以你需要移动和提升 window.parentWidget()

但类 QWorkSpace 已被弃用,您应该改用 QMdiArea(其 subWindowList 方法实际上返回窗口列表而不是内部小部件列表)。

关于python - 使用 QWorkspace 级联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10109638/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com