crossplatform.ru

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

> 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;
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- bynet   QT и регулярные выражения   19.5.2008, 16:26
- - LuckLess   я правильно понимаю? Нужно сделать полноценный пар...   19.5.2008, 18:13
- - ViGOur   QTextEdit вроде как и без регулярных выражений уме...   19.5.2008, 19:44
- - Litkevich Yuriy   видимо это задание такое, освоить регулярные выраж...   20.5.2008, 7:44
- - bynet   нужно освоить регулярные выражения, это в универе ...   20.5.2008, 10:04
- - Litkevich Yuriy   ну начни подбирать регулярные выражения, которые б...   20.5.2008, 10:16
|- - bynet   Цитата(Litkevich Yuriy @ 20.5.2008, 10:16...   20.5.2008, 11:00
- - Litkevich Yuriy   ну я думаю до ссылок доберешся в свое время, начни...   20.5.2008, 11:20
- - Tonal   Вообще-то задание довольно уродское: принципиально...   20.5.2008, 12:10
- - bynet   насчет вложенности - минимально. Мне бы примерчик,...   20.5.2008, 13:40
- - Litkevich Yuriy   Цитата(bynet @ 20.5.2008, 17:40) как сдел...   20.5.2008, 13:59
|- - bynet   Цитата(Litkevich Yuriy @ 20.5.2008, 13:59...   20.5.2008, 14:28
- - Litkevich Yuriy   отлично, значит надо шаблоны: Выделяющий адрес, Вы...   20.5.2008, 14:31
|- - bynet   Цитата(Litkevich Yuriy @ 20.5.2008, 14:31...   20.5.2008, 14:41
- - ViGOur   QString GetCap( QString szRegExp, QString szDa...   20.5.2008, 14:45
- - bynet   Данные в QString szData пробую добавить следующим ...   20.5.2008, 16:25
- - ViGOur   Читай так: QFile fileRead( szFile); if...   20.5.2008, 16:54


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


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




RSS Текстовая версия Сейчас: 15.1.2025, 16:20