crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QWebView->setHtml() Плывет таблица!, кривой вывод QWebView таблицу с данными в формате html!
IspanecST
  опции профиля:
сообщение 20.9.2013, 9:52
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 1
Регистрация: 20.9.2013
Пользователь №: 3932

Спасибо сказали: 0 раз(а)




Репутация:   0  


Доброго времени суток. Есть задача вывести таблицу, формируемую динамически на принтер, с предварительным просмотром.
 QTextStream lTextStream;
   QString lString;

   lTextStream.setString(&lString, QIODevice::ReadWrite);

   lTextStream << "<!DOCTYPE html> ";
   lTextStream << "<html>";
   lTextStream << "<head>";
   lTextStream << "<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />";
   lTextStream << "<title>Name</title>";
   lTextStream << "</head>";
   lTextStream <<  "<body>";
   lTextStream <<  "<table width='500' border='1'>";
   lTextStream <<  "<caption>";
   lTextStream <<  "Tovary";
   lTextStream <<  "</caption>";
   lTextStream <<  "<tr>";
   lTextStream <<  "<th>Tovar</th>";
   lTextStream <<  "<th>Kolichestvo</th>";
   lTextStream <<  "<th>cena</th>";
   lTextStream <<  "</tr>";
   lTextStream <<  "<tr>";
   lTextStream <<  "<td>Samsung</td>";
   lTextStream <<  "<td align='center'>1</td>";
   lTextStream <<  "<td align='right'> 500</td>";
   lTextStream <<  "</tr>";
   lTextStream <<  "<tr>";
   lTextStream <<  "<td>LG</td>";
   lTextStream <<  "<td align='center'>2</td>";
   lTextStream <<  "<td align='right'>1000</td>";
   lTextStream <<  "</tr>";
   lTextStream <<  "</table>";
   lTextStream <<  "</body>";
   lTextStream <<  "</html>";


   QWebView * lWebView = new QWebView();
   lWebView->setHtml(lString.toUtf8());
   QPrinter printer;
   printer.setPaperSize(QPrinter::A4);
   printer.setOrientation(QPrinter::Portrait);

   QPrintPreviewDialog * prevDlg = new QPrintPreviewDialog(&printer);
   QObject::connect(prevDlg, SIGNAL(paintRequested(QPrinter*)), lWebView, SLOT(print(QPrinter*)));

   prevDlg->exec();





в браузере не чего не плывет, помогите пожалуйста разобраться! За ранее благодарю!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Snake174
  опции профиля:
сообщение 23.9.2013, 5:20
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 89
Регистрация: 18.4.2011
Из: Миасс
Пользователь №: 2613

Спасибо сказали: 9 раз(а)




Репутация:   0  


RHEL6 - выводится без косяков.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
sdbrother
  опции профиля:
сообщение 8.12.2013, 11:47
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 1
Регистрация: 8.12.2013
Пользователь №: 4003

Спасибо сказали: 0 раз(а)




Репутация:   0  


Такая же проблема. Решили как-то?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 9.9.2015, 15:09
Сообщение #4





Гости








    


Попробуйте
printer.setResolution(120)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 16.9.2015, 12:35
Сообщение #5


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


вообще, плохая практика указывать ширину таблицы в пикселах в html. лучше ставить проценты или условные единицы (см основы CSS), иначе это всё будет плавать в разных отображениях.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.11.2024, 5:41