QTextEdit中滚动条定位

//滚动条滑块置底
    QScrollBar *scrollbar = ui->textEdit->verticalScrollBar();
    scrollbar->setSliderPosition(scrollbar->maximum());


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`QTextEdit` 是 Qt 框架的一个文本编辑控件,如果你想让其滚动条的光标(通常是滚动条上的小箭头)跟随鼠标位置,你可以通过设置 `setMouseTracking(true)` 和 `viewport()->installEventFilter(this)` 来实现。当鼠标移动时,事件过滤器会检测到鼠标的移动并相应地更新滚动条位置。 以下是如何在 `QTextEdit` 上启用滚动条光标跟随的一个简单示例: ```cpp #include <QApplication> #include <QWidget> #include <QTextEdit> #include <QMouseEvent> class EventFilter : public QObject { public: EventFilter(QObject *parent = nullptr) : QObject(parent) {} protected: bool eventFilter(QObject *obj, QEvent *event) { if (event->type() == QEvent::MouseMove && obj == viewport()) { // viewport() 返回 QTextEdit 的可视区域,即实际显示内容的部分 const QPoint mousePos = static_cast<QMouseEvent*>(event)->pos(); // 更新滚动条位置使其跟随鼠标 QRect scrollRect = viewport()->mapToGlobal(QPoint(0, 0)); scrollbar.setValue(scrollRect.y() - mousePos.y()); return true; // 吸收事件防止默认处理 } return QObject::eventFilter(obj, event); } private: QLabel *scrollbar; }; int main(int argc, char *argv[]) { QApplication app(argc, argv); QWidget window; window.setWindowTitle("QTextEdit Scrollbar Tracking"); QTextEdit textEdit(&window); textEdit.setMouseTracking(true); // 设置光标跟随 EventFilter filter(&window); textEdit.viewport()->installEventFilter(&filter); // 安装事件过滤器 window.resize(600, 400); window.show(); return app.exec(); } ``` 在这个例子,我们创建了一个 `EventFilter` 类,然后将其安装在 `QTextEdit` 的视口上。每次鼠标移动事件发生时,事件过滤器会计算鼠标的新位置,并使用该位置更新滚动条位置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值