【问题标题】:QTextBrowser / C++ append clickable textQTextBrowser / C++ 附加可点击文本
【发布时间】:2017-05-16 09:16:52
【问题描述】:

我是使用 QT 的新手,但遇到了问题。 我想检查 2D 电路布局,并且想在窗口上输出警告或错误。每个警告或错误都应包含 X 和 Y 坐标,当我单击 在发出警告时,它应该调用一个将我导航到错误位置的函数 在布局中(坐标系)。

有没有办法让文本正常工作? 我希望你能理解我的问题。

【问题讨论】:

    标签: c++ qt


    【解决方案1】:

    是的,可以用QTextBrowser实现,但是代码会很多,没有任何好处。有一种更快、更简单、更具可扩展性的方法。

    只需使用QListWidget 并为每个项目设置用户数据(QListWidgetItem::setData),其中将包含坐标(您可以为此使用QPoint)。

    创建QListWidget并将一些槽或函数连接到信号QListWidget::itemClicked

    QListWidget* log = new QListWidget;
    QObject::connect(log, SIGNAL(itemClicked(QListWidgetItem*)), onItemClicked(QListWidgetItem*));
    

    然后,当您收到带有坐标(称为 xy)的新警告(例如在 QString 中称为 log_string)时:

    QListWidgetItem* line = new QListWidgetItem(log_string, log);
    line->setData(Qt::UserRole, QVariant(QPoint(x, y)));
    log->addItem(line);
    

    现在您只需要在连接到QListWidget::itemClicked信号的槽或函数中以正确的方式处理坐标:

    void onItemClicked(QListWidgetItem* item)
    {
      const QPoint coord = item->data(Qt::UserRole).toPoint();
      // process coord.x() and coord.y()
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-09
      • 2020-06-09
      • 1970-01-01
      • 2014-10-07
      • 2019-06-27
      • 2015-08-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多