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 |
|
|
Tonal |
20.5.2008, 12:10
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 452 Регистрация: 6.12.2007 Из: Новосибирск Пользователь №: 34 Спасибо сказали: 69 раз(а) Репутация: 17 |
Вообще-то задание довольно уродское: принципиальное ограничение регулярных языков - это неумение работать со структурами произвольной вложенности. Грубо говоря, нельзя написать регулярное выражение для проверки баланса скобок.
А html как раз является довольно ярким представителем языков с произвольной вложенностью. Хотя может быть задание как раз направлено на то, чтобы студенты как можно полнее осознали сей факт. Ну а как делать - вполне понятно. Если дружишь с python-ом - там один из парсеров html из стандартной поставки построен именно на regex-пах. Всего 370 строк легкочитаемого кода. |
|
|
Текстовая версия | Сейчас: 15.1.2025, 16:26 |