qt 怎么让自定义的控件无法被拖动,这个控件继承于qwidget
时间: 2023-12-18 20:04:28 浏览: 185
自定义控件,类似CheckBoxList可以上下拖动
要让继承自 QWidget 的自定义控件无法被拖动,你可以通过重写控件的 mousePressEvent() 函数来实现。在该函数中,你可以判断用户是否按下了鼠标左键,如果是,则将 QMouseEvent 的 accept() 函数设为 true,从而阻止控件的拖动。具体的实现代码如下所示:
```cpp
void MyWidget::mousePressEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton)
{
event->accept();
}
else
{
QWidget::mousePressEvent(event);
}
}
```
在这个例子中,我们只阻止了鼠标左键的拖动操作,而对于其他行为则不做任何处理,依然沿用 QWidget 的默认行为。如果你需要阻止其他行为的拖动,可以在条件语句中添加相应的判断条件。
阅读全文