QT и регулярные выражения, отображения html в QTextEdit при помощи регулярных выражений |
Здравствуйте, гость ( Вход | Регистрация )
QT и регулярные выражения, отображения html в QTextEdit при помощи регулярных выражений |
bynet |
19.5.2008, 16:26
Сообщение
#1
|
Студент Группа: Участник Сообщений: 69 Регистрация: 17.3.2008 Из: Belarus Пользователь №: 124 Спасибо сказали: 0 раз(а) Репутация: 0 |
Есть програмка. Она открывает html файл и отображает его код. Надо при помощи регулярных выражений сделать чтобы отображался не html код а страничка. Обязательно это надо сделать при помощи регулярных выражениях.
Как сюда прикрутить регулярные выражения и вообще как их использовать? CODE #include <QtGui>
#include "mainwindow.h" MainWindow::MainWindow(QWidget *parent):QMainWindow(parent) { textEdit = new QTextEdit; setCentralWidget(textEdit); createActions(); createMenus(); } void MainWindow::createMenus() { menu = menuBar()->addMenu(tr("&File")); menu->addAction(openAct); } void MainWindow::createActions() { openAct = new QAction(tr("&Open..."), this); openAct->setShortcut(tr("Ctrl+O")); openAct->setStatusTip(tr("Open an existing file")); connect(openAct, SIGNAL(triggered()), this, SLOT(open())); } void MainWindow::open() { QString fileName = QFileDialog::getOpenFileName(this); if (!fileName.isEmpty()) loadFile(fileName); } void MainWindow::loadFile(const QString &fileName) { QFile file(fileName); if (!file.open(QFile::ReadOnly | QFile::Text)) { QMessageBox::warning(this, tr("Application"), tr("Cannot read file %1:\n%2.") .arg(fileName) .arg(file.errorString())); return; } QTextStream in(&file); QApplication::setOverrideCursor(Qt::WaitCursor); textEdit->setPlainText(in.readAll()); QApplication::restoreOverrideCursor(); } Сообщение отредактировал bynet - 19.5.2008, 16:34 |
|
|
bynet |
20.5.2008, 16:25
Сообщение
#2
|
Студент Группа: Участник Сообщений: 69 Регистрация: 17.3.2008 Из: Belarus Пользователь №: 124 Спасибо сказали: 0 раз(а) Репутация: 0 |
Данные в QString szData пробую добавить следующим образом: код ниже
Ругается следующим образом: Linking... mainwindow.obj : error LNK2019: unresolved external symbol "private: class QString __thiscall MainWindow::GetCap(class QString,class QString)" (?GetCap@MainWindow@@AAE?AVQString@@V2@0@Z) referenced in function "private: void __thiscall MainWindow::loadFile(class QString const &)" (?loadFile@MainWindow@@AAEXABVQString@@@Z) debug\borws.exe : fatal error LNK1120: 1 unresolved externals Build log was saved at "file://d:\unui\borws\debug\BuildLog.htm" borws - 2 error(s), 0 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== CODE void MainWindow::loadFile(const QString &fileName)
{ QString szData; QString szRegExp = "^.*<html.*<body[^<>]*>(.*)</body.*"; QFile file(fileName); if (!file.open(QFile::ReadOnly | QFile::Text)) { QMessageBox::warning(this, tr("Application"), tr("Cannot read file %1:\n%2.") .arg(fileName) .arg(file.errorString())); return; } QTextStream in(&file); QApplication::setOverrideCursor(Qt::WaitCursor); //textEdit->setPlainText(in.readAll()); szData.append(in.readAll()); QString szLink = GetCap( szRegExp, szData); textEdit->setPlainText(szLink); QApplication::restoreOverrideCursor(); } QString GetCap( QString szRegExp, QString szData) { QString szCap; QRegExp rx( szRegExp, Qt::CaseInsensitive); int pos = rx.indexIn( szData); if (pos > -1) { szCap = rx.cap( 1); } return szCap; } |
|
|
Текстовая версия | Сейчас: 15.1.2025, 16:20 |