gpt4 book ai didi

c++ - 为 Qt Frameless 小部件实现调整大小选项

转载 作者:搜寻专家 更新时间:2023-10-31 00:45:15 25 4
gpt4 key购买 nike

我如何为用作主窗口的 Qt 无框小部件实现调整大小选项?

最佳答案

我也刚遇到这个问题,我通过为我的 QMainWindow 添加自定义 mouseEvent 处理程序解决了这个问题。我正在使用 PyQt,但它在 C++ 中应该非常相似。

在我的实现中,在无框小部件(称为 MyClass)上的任意位置拖动鼠标右键可调整其大小。

按下鼠标右键时,存储坐标:

def mousePressEvent(self, event):
super(MyClass, self).mousePressEvent(event)

if event.button() == QtCore.Qt.RightButton:
self.rdragx = event.x()
self.rdragy = event.y()
self.currentx = self.width()
self.currenty = self.height()
self.rightClick = True

如果鼠标在按钮仍被按下时移动(即,当它被拖动时),则调整 QMainWindow 的大小。不要让它变得小于预定义的最小尺寸。

def mouseMoveEvent(self, event):
super(Myclass, self).mouseMoveEvent(event)
if self.rightClick == True:
x = max(frame.minimumWidth(),
self.currentx + event.x() - self.rdragx)
y = max(frame.minimumHeight(),
self.currenty + event.y() - self.rdragy)
self.resize(x, y)

释放鼠标按钮时,将按钮变量重置为 False 以停止移动时调整大小。

def mouseReleaseEvent(self, event):
super(MyClass, self).mouseReleaseEvent(event)
self.rightClick = False

关于c++ - 为 Qt Frameless 小部件实现调整大小选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7128238/

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