Как вставить последний ввод в качестве первой записи таблицы в QwebKit - PullRequest
1 голос
/ 04 мая 2010

Я использую Qwebkit, и мне нравится иметь возможность вставлять в таблицу HTML каждый ввод данных, который идет последним как первая запись (<tr><td>...my data ...</td></tr>) в таблицу. Вот мой код, это только пример:

ui.webView->page()->mainFrame()->setHtml("<html><body><p>HTML Table Test</p>"
                                            "<table id=\"mainTable\" name=\"mainTable\" BORDER=1 BORDERCOLOR=RED></table>"
                                             "</body></html>");
    QWebElement body = ui.webView->page()->mainFrame()->documentElement();
    QWebElement mainTable = ui.webView->page()->mainFrame()->findFirstElement("#mainTable");
    mainTable.appendInside ("<tr><td>1111111<\/td></\tr>");      ///<-- this is i like to be last in the end
    mainTable.appendInside ("<tr><td>2222222<\/td></\tr>");      ///<-- this is i like to be in the middle
    mainTable.appendInside ("<tr><td>3333333<\/td></\tr>");     ///<-- this is i like to be in the first

Содержимое записей поступает динамически, а не так, как я показываю здесь, поэтому я не могу сделать это жестко; короче мне нужен алгоритм LIFO здесь ..

Как мне это сделать?

1 Ответ

3 голосов
/ 04 мая 2010

Метод QWebElement::appendInside добавляет параметр в конец веб-элемента. Метод QWebElement::prependInside добавляет параметр в начало веб-элемента.

Если у нас есть QWebElement *elt, содержащий пустую таблицу, такую ​​как:

<table><table>

для создания следующей таблицы,

<table>
  <tr><td>A</td></tr>
  <tr><td>B</td></tr>
  <tr><td>C</td></tr>
</table>

Вы можете использовать один из двух следующих методов, они эквивалентны.

Метод 1, с добавлением внутрь

elt->appendInside("<tr><td>A</td></tr>");
elt->appendInside("<tr><td>B</td></tr>");
elt->appendInside("<tr><td>C</td></tr>");

или метод 2, с preprendInside

elt->prependInside("<tr><td>C</td></tr>");
elt->prependInside("<tr><td>B</td></tr>");
elt->prependInside("<tr><td>A</td></tr>");

Использование prependInside или appendInside дает вам контроль над поведением FIFO или LIFO вашего алгоритма.

...