- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我相信 中没有原生函数QtWebKit 使用 拼写检查器 .
有没有办法获取当前页面的字段( <textarea>
, <input>
和 <tagName contenteditable=true>
)并突出显示特定单词(仅添加下划线可能错误的单词)?
[编辑]
我需要添加 《视觉效果》 (下划线)到 Words 而不是 dom 元素,例如,如果我有这样的 html:
<textarea>Helllo world!</textarea>
最佳答案
更新:
不,据我所知,在 QtWebKit
,您不能格式化 textarea
的内容.
Format text in a <textarea>?
你可以用 div
替换它看起来和行为就像 textarea
,然后在特定单词周围插入一些标签。
但正如我从解决这个问题中可以看出的那样,QWebElement
是不可能的。 .
你可以去问问巨魔,看看他们有什么建议。
这是最接近的代码。当网页出现时,右键单击页面上的不同位置。
主程序
#include <QApplication>
#include "webview.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
WebView w;
w.show();
return a.exec();
}
#ifndef WEBVIEW_H
#define WEBVIEW_H
#include <QWebView>
#include <QContextMenuEvent>
class WebView : public QWebView
{
Q_OBJECT
public:
explicit WebView(QWidget *parent = 0);
~WebView();
public slots:
void contextMenuEvent(QContextMenuEvent *);
private:
};
#endif // WEBVIEW_H
#include "webview.h"
#include <QWebFrame>
#include <QWebElement>
#include <QWebElementCollection>
#include <QDebug>
WebView::WebView(QWidget *parent) :
QWebView(parent)
{
this->setUrl(QUrl("http://www.w3schools.com/tags/tag_textarea.asp"));
// right click on different parts of the web page
}
WebView::~WebView(){ }
void WebView::contextMenuEvent(QContextMenuEvent * cme)
{
QPoint pos = cme->pos();
QWebHitTestResult whtr = this->page()->frameAt(pos)->hitTestContent(pos);
QWebElement we = whtr.element();
if(we.isNull())
{
qDebug() << "WebElement is null.";
}
else
{
qDebug() << we.tagName() << "OuterXML <<<<<" << we.toOuterXml() << ">>>>>";
qDebug() << we.tagName() << "InnerXML <<<<<" << we.toInnerXml() << ">>>>>";
qDebug() << we.tagName() << "PlainText <<<<<" << we.toPlainText() << ">>>>>";
// TODO: replace the lines below with a better way of extracting words from the DOM and the HTML tags
// This current method modifies tags instead of just the text inside tags.
QStringList list = we.toPlainText().split(' ');
for(int i = 0; i < list.size(); i++)
{
// TODO: Insert dictionary logic here when examining words
if(list.at(i).size() > 5)
{
list[i] = "<span class=\"sp\" style=\"border-bottom: 1px dotted red;\">" + list.at(i) + "</span>";
}
}
qDebug() << list.join(" ");
we.setInnerXml(list.join(" "));
qDebug() << "-------------------------------------------";
}
}
QContextMenuEvent
.
QWebFrame * QWebPage::frameAt ( const QPoint & pos ) const
QWebHitTestResult QWebFrame::hitTestContent ( const QPoint & pos ) const
QWebElement QWebHitTestResult::element () const
bool QWebHitTestResult::isContentEditable () const
contextMenu
的
QWebView
就在那时。
contextMenu
为
QWidget
.
void Window::on_elementLineEdit_returnPressed()
{
QWebFrame *frame = webView->page()->mainFrame();
QWebElement document = frame->documentElement();
QWebElementCollection elements = document.findAll(elementLineEdit->text());
foreach (QWebElement element, elements)
element.setAttribute("style", "background-color: #f0f090");
}
void MainWindow::contextMenuEvent(QContextMenuEvent *event)
{
QMenu menu(this);
menu.addAction(cutAct);
menu.addAction(copyAct);
menu.addAction(pasteAct);
menu.exec(event->globalPos());
}
void MainWindow::rotateImages(bool invert)
{
QString code;
if (invert)
code = "$('img').each( function () { $(this).css('-webkit-transition', '-webkit-transform 2s'); $(this).css('-webkit-transform', 'rotate(180deg)') } )";
else
code = "$('img').each( function () { $(this).css('-webkit-transition', '-webkit-transform 2s'); $(this).css('-webkit-transform', 'rotate(0deg)') } )";
view->page()->mainFrame()->evaluateJavaScript(code);
}
"$('img').each(
为
"$('textarea').each(
并对区域的文本进行操作。
<textarea>
块。
关于qt - Webkit 上的 SpellChecker(拼写器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17623364/
我想通过用语言环境拼写数字来本地化数字,最后使用了 ICU4J。我在许多地区都取得了成功,但似乎没有在格鲁吉亚、土耳其或阿拉伯语等地区完成。 ULocale locale = new ULocale(
我正在研究具有端点的 swagger API 规范: /authorizations 我也想为这个端点定义一个替代拼写(授权)。这可能吗?或者我是否需要为每个拼写定义一个单独的路由? /authori
我正在研究具有端点的 swagger API 规范: /authorizations 我也想为这个端点定义一个替代拼写(授权)。这可能吗?或者我是否需要为每个拼写定义一个单独的路由? /authori
我使用 Yahoo BOSS 的时间很短。这是一个简单的搜索 API,但拼写建议支持确实不那么强大。周围的人是否有任何关于在 BOSS 上获得更好的拼写建议的想法。 最佳答案 不幸的是,甚至在几年后,
问题如下:我正在编写一个强力解密器来破解一些 super secret 代码(这是一场竞赛,而不是犯罪),结果证明这是不可能的:树中的节点太多需要被搜查。为了克服这个问题,我认为检查中间“解决方案”以
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
我是一名优秀的程序员,十分优秀!