I am trying to set up a user manual and followed the method in C++ Gui Programming with Qt. It worked exactly as planned on Qt Creator version 2.0 using Qt 4.7. I then transferred the code to Creator Version 2.4.1 using Qt 4.7.4 and it didn't work. At first the browser window would not load anything. I modified the code and now the manual shows, but it does not show the pictures. Here is what I have:
Original code
DlgHelpBrowser
::DlgHelpBrowser(const QString &path,
const QString &page,
ui(new Ui::DlgHelpBrowser)
{
ui->setupUi(this);
setAttribute(Qt::WA_DeleteOnClose);
setAttribute(Qt::WA_GroupLeader);
connect (ui->btnHome, SIGNAL(clicked()),
ui->textBrowser, SLOT (home()));
connect (ui->btnBack, SIGNAL(clicked()),
ui->textBrowser, SLOT (backward()));
connect (ui->btnClose, SIGNAL(clicked()),
this, SLOT (close()));
ui
->textBrowser
->setSearchPaths
(QStringList() << path <<
"/graphics");
ui->textBrowser->setSource(page);
}
DlgHelpBrowser::DlgHelpBrowser(const QString &path, const QString &page,
QWidget *parent) :
QDialog(parent),
ui(new Ui::DlgHelpBrowser)
{
ui->setupUi(this);
setAttribute(Qt::WA_DeleteOnClose);
setAttribute(Qt::WA_GroupLeader);
connect (ui->btnHome, SIGNAL(clicked()),
ui->textBrowser, SLOT (home()));
connect (ui->btnBack, SIGNAL(clicked()),
ui->textBrowser, SLOT (backward()));
connect (ui->btnClose, SIGNAL(clicked()),
this, SLOT (close()));
ui->textBrowser->setSearchPaths(QStringList() << path <<"/graphics");
ui->textBrowser->setSource(page);
}
To copy to clipboard, switch view to plain text mode
void DlgHelpBrowser
::showPage(const QString &page
) {
QString path
= directoryOf
("manual").
absolutePath();
DlgHelpBrowser *browser = new DlgHelpBrowser ( path, page);
browser->resize(1000, 800);
browser->show();
}
void DlgHelpBrowser::showPage(const QString &page)
{
QString path= directoryOf("manual").absolutePath();
DlgHelpBrowser *browser = new DlgHelpBrowser ( path, page);
browser->resize(1000, 800);
browser->show();
}
To copy to clipboard, switch view to plain text mode
QDir DlgHelpBrowser
::directoryOf(const QString &subdir
) {
if (dir.dirName().toLower()== "debug" || dir.dirName().toLower()=="release")
dir.cdUp();
dir.cd(subdir);
return dir;
}
QDir DlgHelpBrowser::directoryOf(const QString &subdir)
{
QDir dir(QApplication::applicationDirPath());
if (dir.dirName().toLower()== "debug" || dir.dirName().toLower()=="release")
dir.cdUp();
dir.cd(subdir);
return dir;
}
To copy to clipboard, switch view to plain text mode
The code to run on Creator 2.4.1
DlgHelpBrowser
::DlgHelpBrowser(const QString &path,
const QString &page,
ui(new Ui::DlgHelpBrowser)
{
ui->setupUi(this);
setAttribute(Qt::WA_DeleteOnClose);
setAttribute(Qt::WA_GroupLeader);
connect (ui->btnHome, SIGNAL(clicked()),
ui->textBrowser, SLOT (home()));
connect (ui->btnBack, SIGNAL(clicked()),
ui->textBrowser, SLOT (backward()));
connect (ui->btnClose, SIGNAL(clicked()),
this, SLOT (close()));
QUrl loadPage
=QUrl::fromLocalFile(page
);
//New line here ui
->textBrowser
->setSearchPaths
(QStringList() << path <<
"/graphics");
//I also tried path + "/graphics" ui->textBrowser->setSource(loadPage);
ui->textBrowser->zoomIn(2);
}
DlgHelpBrowser::DlgHelpBrowser(const QString &path, const QString &page,
QWidget *parent) :
QDialog(parent),
ui(new Ui::DlgHelpBrowser)
{
ui->setupUi(this);
setAttribute(Qt::WA_DeleteOnClose);
setAttribute(Qt::WA_GroupLeader);
connect (ui->btnHome, SIGNAL(clicked()),
ui->textBrowser, SLOT (home()));
connect (ui->btnBack, SIGNAL(clicked()),
ui->textBrowser, SLOT (backward()));
connect (ui->btnClose, SIGNAL(clicked()),
this, SLOT (close()));
QUrl loadPage =QUrl::fromLocalFile(page);//New line here
ui->textBrowser->setSearchPaths(QStringList() << path <<"/graphics"); //I also tried path + "/graphics"
ui->textBrowser->setSource(loadPage);
ui->textBrowser->zoomIn(2);
}
To copy to clipboard, switch view to plain text mode
This shows the HTML file but the pictures are not there, just a picture icon. Any ideas?
Bookmarks