C++Qt代码实现将QDockWidget中的QtoolButton复制拖拽到QtDrawingpaperEditor中
时间: 2024-02-17 22:02:44 浏览: 30
可以通过以下步骤实现将QDockWidget中的QToolButton复制拖拽到QtDrawingpaperEditor中:
1. 在QDockWidget中创建一个QToolButton,并设置其拖拽属性为True:
```cpp
QToolButton *button = new QToolButton(this);
button->setDragEnabled(true);
```
2. 在QtDrawingpaperEditor中实现拖放事件:
```cpp
void QtDrawingpaperEditor::dragEnterEvent(QDragEnterEvent *event)
{
if (event->mimeData()->hasFormat("text/plain"))
event->acceptProposedAction();
}
void QtDrawingpaperEditor::dropEvent(QDropEvent *event)
{
QString text = event->mimeData()->text();
QToolButton *button = new QToolButton(this);
button->setText(text);
button->show();
event->acceptProposedAction();
}
```
3. 在QToolButton的mousePressEvent中设置拖拽数据:
```cpp
void QToolButton::mousePressEvent(QMouseEvent *event)
{
QByteArray itemData;
QDataStream dataStream(&itemData, QIODevice::WriteOnly);
dataStream << text();
QMimeData *mimeData = new QMimeData;
mimeData->setData("text/plain", itemData);
QDrag *drag = new QDrag(this);
drag->setMimeData(mimeData);
drag->exec(Qt::CopyAction);
}
```
这样就可以实现从QDockWidget中拖拽QToolButton到QtDrawingpaperEditor中并复制该按钮的功能。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)