Qt C++ 计算QPlaintTextEdit当前光标的屏幕坐标
时间: 2024-09-29 12:02:38 浏览: 35
在Qt中,如果你想获取`QPlainTextEdit`控件中当前光标的位置(屏幕坐标),你可以使用`QCursor`和`QPoint`类。首先,你需要捕获鼠标事件,然后从该事件中提取光标位置。以下是步骤:
1. 创建一个信号连接,监听`QPlainTextEdit`的鼠标点击事件:
```cpp
connect(yourPlainTextEdit, &QPlainTextEdit::mouseMoveEvent, this, &YourClass::cursorMoved);
```
2. 实现`cursorMoved`槽函数:
```cpp
void YourClass::cursorMoved(QMouseEvent *event) {
// 获取光标位置(以像素为单位)
QPoint cursorPos = event->pos();
// 把这个位置转换为你需要的坐标系(如果需要的话,例如窗口坐标或视图坐标)
QRect textRect = yourPlainTextEdit->viewport()->rect();
int screenX = cursorPos.x() - textRect.left();
int screenY = cursorPos.y() - textRect.top();
qDebug() << "当前光标的屏幕坐标: (" << screenX << ", " << screenY << ")";
}
```
这里假设`yourPlainTextEdit`是你想要监控的`QPlainTextEdit`实例。
阅读全文