gpt4 book ai didi

Qt 禁用移动窗口

转载 作者:行者123 更新时间:2023-12-04 18:20:05 24 4
gpt4 key购买 nike

我有一个带有这个标志的 QMainWindow :

this->setWindowFlags(Qt::SubWindow);

如何禁止窗口移动,并且保持这个窗口样式?

最佳答案

我认为在使用标准窗口控件时没有跨操作系统的 Qt 方法来实现这一点。

你可以试试这样的东西:

class Widget : public QWidget {
Q_OBJECT

public:
Widget()
: fixed_pos_(QPoint(100, 100)) {
setWindowFlags(Qt::SubWindow);
}

void SetFixedPos(const QPoint& pos) {
fixed_pos_ = pos;
}

protected:
void moveEvent(QMoveEvent* ev) {
if (ev->pos() != fixed_pos_)
move(fixed_pos_);
}

private:
QPoint fixed_pos_;
};

这些有一些问题,例如闪烁,在鼠标释放之前不会更新等等,这也因操作系统而异。

最有效的方法是让你的窗口成为一个Qt::FramelessWindowHint并自己渲染标题栏。这样,在处理该标题栏上的事件时,您几乎可以做您想做的事。

关于Qt 禁用移动窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16239080/

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