在Qt中设置HTML表的宽度

时间:2013-04-14 09:45:30

标签: html qt printing html-table qt4

我无法弄清楚出了什么问题。 我正在使用Qt 4.8.4(clang,gcc)。我想打印我使用HTML构建的自定义表。 我发现我不能在表格中获得单词扭曲,并且不能限制表格宽度

要更快地理解这个问题,您可以重播这样的行为:使用MainWindow创建Qt项目,在其构造函数中编写下一个代码:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QString tablesHtml("<table border=\"1\" width=\"200\">"
                   "<tr><td>"
                   "NOT LONG TEXT, 200px"
                   "</td></tr>"
                   "</table>"

                   "<table border=\"1\" width=\"300\">"
                   "<tr><td>"
                   "NOT LONG TEXT, 300px"
                   "</td></tr>"
                   "</table>"

                   "<table border=\"1\" width=\"300\">"
                   "<tr><td>"
                   "VEEERY LOOOONG TEEEEXT LONG LONG"
                   "VEEERY LOOOONG TEEEEXT LONG LONG"
                   "WHY NOT 300px, WHY?!"
                   "</td></tr>"
                   "</table>");
    doc.setHtml(tablesHtml);
    QPrinter prn;
    prn.setPageSize(QPrinter::A4);
    prn.setPageMargins(30, 20, 15, 20, QPrinter::Millimeter);
    QPrintPreviewDialog previewDialog(&prn);
    QObject::connect( &previewDialog, SIGNAL( paintRequested (QPrinter*) ),
                      this, SLOT ( onPrintRequested(QPrinter*) ));
    previewDialog.exec();
}

并添加public slots: void onPrintRequested(QPrinter*p);

void MainWindow::onPrintRequested(QPrinter *p)
{
    QPainter pnt(p);
    doc.drawContents(&pnt);
}

结果我总是得到: Printing problem

编辑:

  1. 以下是有关Qt如何处理html和css的信息 - Supported HTML Subset
  2. 如果省略WebKit可以解决这个问题吗?

0 个答案:

没有答案