Михаиллл
Михаиллл2. Januar 2019 07:06

Как QSqlTableModel перевести в QString или распечатать

qt, QSqlTableModel, QString

Здравствуйте.
Как QSqlTableModel перевести в QString или распечатать?

Рекомендуємо хостинг TIMEWEB
Рекомендуємо хостинг TIMEWEB
Stabiles Hosting des sozialen Netzwerks EVILEG. Wir empfehlen VDS-Hosting für Django-Projekte.

Magst du es? In sozialen Netzwerken teilen!

1
Ruslan Polupan
  • 2. Januar 2019 07:28

Модель на печать не выводил а вот содержимое QTavleView выводил так.

void MainWindow::slotPrintTavleView(QTableView *tblView)
{
    // make a html-dump of table view
    QString printStr;
        if (tblView) {

            QTextStream out(&printStr);

            const int rowCount = tblView->model()->rowCount();
            const int columnCount = tblView->model()->columnCount();

            out <<  "<html>\n"
                    "<head>\n"
                    "<meta Content=\"Text/html; charset=utf-8\">\n"
                <<  QString("<title>%1</title>\n").arg("refTitleName")
                <<  "</head>\n"
                    "<body bgcolor=#ffffff link=#5000A0>\n"
                    "<table border=1 cellspacing=0 cellpadding=2>\n";

            // headers
            out << "<tr bgcolor=#f0f0f0>";
            for (int column = 0; column < columnCount; column++)
                if (!tblView->isColumnHidden(column))
                    out << QString("<th>%1</th>").arg(tblView->model()->headerData(column, Qt::Horizontal).toString());
            out << "</tr>\n";
            for (int row = 0; row < rowCount; row++) {
                out << "<tr>";
                for (int column = 0; column < columnCount; column++) {
                    if (!tblView->isColumnHidden(column)) {
                        QString data = tblView->model()->data(tblView->model()->index(row, column)).toString().simplified();

                        out << QString("<td bkcolor=0>%1</td>").arg((!data.isEmpty()) ? data : QString("&nbsp;"));
                    }
                }
                out << "</tr>\n";
            }
            out <<  "</table>\n"
                "</body>\n"
                "</html>\n";
        }
        document = new QTextDocument();

        document->setHtml(printStr);




            QPrintPreviewDialog  *prDialog = new QPrintPreviewDialog(&printer, this);
            connect(prDialog,SIGNAL(paintRequested(QPrinter*)),this,SLOT(printPreviewNeeds(QPrinter*)));

        prDialog->showMaximized();
        prDialog->exec();
}

void MainWindow::printPreviewNeeds(QPrinter *)
{
    document->print(&printer);
//    delete document;
}

    Kommentare

    Nur autorisierte Benutzer können Kommentare posten.
    Bitte Anmelden oder Registrieren
    Letzte Kommentare
    A
    ALO1ZE19. Oktober 2024 08:19
    Fb3-Dateileser auf Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
    ИМ
    Игорь Максимов5. Oktober 2024 07:51
    Django – Lektion 064. So schreiben Sie eine Python-Markdown-Erweiterung Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
    d
    dblas55. Juli 2024 11:02
    QML - Lektion 016. SQLite-Datenbank und das Arbeiten damit in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
    k
    kmssr8. Februar 2024 18:43
    Qt Linux - Lektion 001. Autorun Qt-Anwendung unter Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
    Qt WinAPI - Lektion 007. Arbeiten mit ICMP-Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
    Jetzt im Forum diskutieren
    J
    JacobFib17. Oktober 2024 03:27
    добавить qlineseries в функции Пользователь может получить любые разъяснения по интересующим вопросам, касающимся обработки его персональных данных, обратившись к Оператору с помощью электронной почты https://topdecorpro.ru…
    JW
    Jhon Wick1. Oktober 2024 15:52
    Indian Food Restaurant In Columbus OH| Layla’s Kitchen Indian Restaurant If you're looking for a truly authentic https://www.laylaskitchenrestaurantohio.com/ , Layla’s Kitchen Indian Restaurant is your go-to destination. Located at 6152 Cleveland Ave, Colu…
    КГ
    Кирилл Гусарев27. September 2024 09:09
    Не запускается программа на Qt: точка входа в процедуру не найдена в библиотеке DLL Написал программу на C++ Qt в Qt Creator, сбилдил Release с помощью MinGW 64-bit, бинарнику напихал dll-ки с помощью windeployqt.exe. При попытке запуска моей сбилженной программы выдаёт три оши…
    F
    Fynjy22. Juli 2024 04:15
    при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …

    Folgen Sie uns in sozialen Netzwerken