ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ QTextBrowser Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΠ° ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎΠΌΠΎΡΠΈ
ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΠΎΠΌΠΎΡΠΈ Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠΎΠΉ, ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ, ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π² ΡΡΡΠΎΠΊΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΈ ΡΠΏΡΠ°Π²ΠΊΠΈ Β«ΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅?Β». ΠΡΠΎΡΡΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΠΈΡ Π² ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π±ΡΠ°ΡΠ·Π΅ΡΠ° ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎΠΌΠΎΡΠΈ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ Π±ΡΠ°ΡΠ·Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎΠΌΠΎΡΠΈ, ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΠ΄ΠΏΡΠ½ΠΊΡ ΠΌΠ΅Π½Ρ Help Π² ΠΌΠ΅Π½Ρ Help Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ Help Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅.
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΠΏΡΠΎΡΡΠΎΠΉ Π±ΡΠ°ΡΠ·Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎΠΌΠΎΡΠΈ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π½Π° ΡΠΈΡ. 16.3, ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ, ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΠΊΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ QTextBrowser Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π½Π° ΡΠΊΡΠ°Π½ ΡΡΡΠ°Π½ΠΈΡ ΡΠΏΡΠ°Π²ΠΊΠΈ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ HTML. QTextBrowser ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΠΎΠ² HTML, ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠ½ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΡΠΈΡ ΡΠ΅Π»Π΅ΠΉ.
ΠΡ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°:
01 #include <QWidget>
02 class QPushButton;
03 class QTextBrowser;
04 class HelpBrowser : public QWidget
05 {
06 Q_OBJECT
07 public:
08 HelpBrowser(const QString &path,
09 const QString &page, QWidget *parent = 0);
10 static void showPage(const QString &page);
11 private slots:
12 void updateWindowTitle();
13 private:
14 QTextBrowser *textBrowser;
15 QPushButton *homeButton;
16 QPushButton *backButton;
17 QPushButton *closeButton;
18 };
ΠΠ»Π°ΡΡ HelpBrowser ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΠ°Π½Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΠΊΠ½ΠΎ HelpBrowser ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π½Π° ΡΠΊΡΠ°Π½ Π·Π°Π΄Π°Π½Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡΡ.
Π ΠΈΡ. 16.3. ΠΠΈΠ΄ΠΆΠ΅Ρ HelpBrowser.
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ Π½Π°ΡΠ°Π»ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ:
01 #include <QtGui>
02 #include "helpbrowser.h"
03 HelpBrowser::HelpBrowser(const QString &path,
04 const QString &page, QWidget *parent)
05 : QWidget(parent)
06 {
07 setAttribute(Qt::WA_DeleteOnClose);
08 setAttribute(Qt::WA_GroupLeader);
09 textBrowser = new QTextBrowser;
10 homeButton = new QPushButton(tr("&Home"));
11 backButton = new QPushButton(tr("&Back"));
12 closeButton = new QPushButton(tr("Close"));
13 closeButton->setShortcut(tr("Esc"));
14 QHBoxLayout *buttonLayout = new QHBoxLayout;
15 buttonLayout->addWidget(homeButton);
16 buttonLayout->addWidget(backButton);
17 buttonLayout->addStretch();
18 buttonLayout->addWidget(closeButton);
19 QVBoxLayout *mainLayout = new QVBoxLayout;
20 mainLayout->addLayout(buttonLayout);
21 mainLayout->addWidget(textBrowser);
22 setLayout(mainLayout);
23 connect(homeButton, SIGNAL(clicked()),
24 textBrowser, SLOT(home()));
25 connect(backButton, SIGNAL(clicked()),
26 textBrowser, SLOT(backward()));
27 connect(closeButton, SIGNAL(clicked()),
28 this, SLOT(close()));
29 connect(textBrowser, SIGNAL(sourceChanged(const QUrl &)),
30 this, SLOT(updateWindowTitle()));
31 textBrowser->setSearchPaths(QStringList() << path << ":/images");
32 textBrowser->setSource(page);
33 }
ΠΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π°ΡΡΠΈΠ±ΡΡ Qt::WA_GroupLeader, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Ρ ΠΎΡΠΈΠΌ Π²ΡΠ΄Π°Π²Π°ΡΡ ΠΎΠΊΠ½Π° HelpBrowser Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ· ΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΡ ΠΎΠΊΠΎΠ½. ΠΠ±ΡΡΠ½ΠΎ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠ΅ ΠΎΠΊΠ½Π° Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΠΎΡΠ° ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ Ρ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΠΌ ΠΎΠΊΠ½ΠΎΠΌ, ΡΠ°ΠΊ ΠΈ Ρ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠΌ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎΠΌΠΎΡΠΈ. Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π°ΡΡΠΈΠ±ΡΡΠ° Qt::WA_GroupLeader Π΄Π΅Π»Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΡΠ°ΠΊΠΎΠΉ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°Π±ΠΎΡΡ.
ΠΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΠΌ Π΄Π²Π° ΠΏΡΡΠΈ ΠΏΠΎΠΈΡΠΊΠ°: ΠΏΠ΅ΡΠ²ΡΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΡΡΡ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π° Π²ΡΠΎΡΠΎΠΉ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. HTML ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΎΠ±ΡΡΠ½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΠ΅ΡΡΡΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΠΏΡΡΠΈ ΠΊΠΎΡΠΎΡΡΡ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² :/ (Π΄Π²ΠΎΠ΅ΡΠΎΡΠΈΠ΅ ΠΈ ΡΠ»Π΅Ρ). ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ page ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΌΠ΅ΡΠΊΠΈ HTML (anchor).
01 void HelpBrowser::updateWindowTitle()
02 {
03 setWindowTitle(tr("Help: %1")
04 .arg(textBrowser->documentTitle()));
05 }
ΠΡΠΈ Π²ΡΡΠΊΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΠ»ΠΎΡ updateWindowTitle(). Π€ΡΠ½ΠΊΡΠΈΡ documentTitle() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ΅ΠΊΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉΡΡ Π² ΡΠ΅Π³Π΅ <title> ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ.
01 void HelpBrowser::showPage(const QString &page)
02 {
03 QString path = QApplication::applicationDirPath() + "/doc";
04 HelpBrowser *browser = new HelpBrowser(path, page);
05 browser->resize(500, 400);
06 browser->show();
07 }
Π ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ showPage() ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠΊΠ½ΠΎ HelpBrowser ΠΈ Π·Π°ΡΠ΅ΠΌ Π²ΡΠ΄Π°Π΅ΠΌ Π΅Π³ΠΎ Π½Π° ΡΠΊΡΠ°Π½. ΠΡΠΎ ΠΎΠΊΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π°Π»Π΅Π½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π·Π°ΠΊΡΠΎΠ΅Ρ Π΅Π³ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΠ»ΠΈ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ HelpBrowser Π°ΡΡΠΈΠ±ΡΡ Qt::WA_DeleteOnClose.
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, ΡΡΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π² ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ doc ΡΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, Π³Π΄Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ showPage(), Π±ΡΠ΄ΡΡ Π±ΡΠ°ΡΡΡΡ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠ·ΡΠ²Π°ΡΡ Π±ΡΠ°ΡΠ·Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎΠΌΠΎΡΠΈ ΠΈΠ· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π Π³Π»Π°Π²Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Help ΠΈ ΠΏΠΎΠ΄ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡ Π΅Π΅ ΠΊ ΡΠ»ΠΎΡΡ help(), ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΈΠ΄:
01 void MainWindow::help()
02 {
03 HelpBrowser::showPage("index.html");
04 }
ΠΠ΄Π΅ΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ, ΡΡΠΎ Π³Π»Π°Π²Π½ΡΠΉ ΡΠ°ΠΉΠ» ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎΠΌΠΎΡΠΈ ΠΈΠΌΠ΅Π΅Ρ ΠΈΠΌΡ index.html. ΠΠ»Ρ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΡ ΠΎΠΊΠΎΠ½ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΏΠΎΠ΄ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Help ΠΊ ΡΠ»ΠΎΡΡ help(), ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π²ΠΈΠ΄:
01 void EntryDialog::help()
02 {
03 HelpBrowser::showPage("forms.html#editing");
04 }
ΠΠ΄Π΅ΡΡ ΠΌΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ Π½Π° ΡΠΊΡΠ°Π½ Π΄ΡΡΠ³ΠΎΠΉ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ», forms.html, ΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΡΠ΅ΠΌ Π±ΡΠ°ΡΠ·Π΅Ρ QTextBrowser Π½a ΠΌΠ΅ΡΠΊΡ editing.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Qt Assistant Π΄Π»Ρ ΠΌΠΎΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎΠΌΠΎΡΠΈ
Qt Assistant ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΠΌΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΏΠΎΠΌΠΎΡΠΈ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΡΠΈΡΠΌΠΎΠΉ Β«TrolltechΒ». ΠΡΠ½ΠΎΠ²Π½ΡΠΌ Π΅Π΅ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΈΠ½Π΄Π΅ΠΊΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ΅ΠΊΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΅Π΅ ΡΠ°Π±ΠΎΡΡ Ρ Π½Π°Π±ΠΎΡΠ°ΠΌΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠ»Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ Qt Assistant ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ Π² Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ ΠΈ ΡΠΊΠ°Π·Π°ΡΡ Qt Assistant ΠΌΠ΅ΡΡΠΎ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π°ΡΠ΅ΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
Π‘Π²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Qt ΠΈ QtAssistant ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠΌ QAssistantClient, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅. ΠΠ»Ρ ΡΠ±ΠΎΡΠΊΠΈ ΡΡΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Ρ Π½Π°ΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΡΠΎΠΊΡ ΠΊ ΡΠ°ΠΉΠ»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ .pro:
CONFIG += assistant
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° HelpBrowser, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Qt Assistant.
01 #ifndef HELPBROWSER_H
02 #define HELPBROWSER_H
03 class QAssistantClient;
04 class QString;
05 class HelpBrowser
06 {
07 public:
08 static void showPage(const QString &page);
09 private:
10 static QAssistantClient *assistant;
11 };
12 #endif
ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ Π½ΠΎΠ²ΡΠΉ ΡΠ°ΠΉΠ» helpbrowser.cpp:
01 #include <QApplication>
02 #include <QAssistantClient>
03 #include "helpbrowser.h"
04 QAssistantClient *HelpBrowser::assistant = 0;
05 void HelpBrowser::showPage(const QString &page)
06 {
07 QString path = QApplication::applicationDirPath() + "/doc/" + page;
08 if (!assistant)
09 assistant = new QAssistantClient("");
10 assistant->showPage(path);
11 }
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ QAssistantClient ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ²ΠΎΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΡΡΡΠΎΠΊΡ ΠΏΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΌΠ΅ΡΡΠ° Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Qt Assistant. ΠΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ ΠΏΡΡΡΠΎΠΉ ΠΏΡΡΡ, ΠΌΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ Π½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ QAssistantClient ΠΏΠΎΠΈΡΠΊΠ° ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ Π² ΠΏΡΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Ρ PATH. QAssistantClient ΠΈΠΌΠ΅Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ showPage(), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΈΠΌΡ ΡΠ°ΠΉΠ»Π° ΡΡΡΠ°Π½ΠΈΡΡ HTML Ρ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΌ ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΌΠ΅ΡΠΊΠΈ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ.
ΠΠ° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΡΠ°ΠΏΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ ΠΎΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠ½ΡΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΡΠΈΠ»Ρ Qt Assistant ΠΈ ΡΠ°ΠΉΠ»Π° .dcf, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΡΠ΅ ΡΡΠΎ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ Qt Assistant, ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Π½Π΅ ΡΡΠ°Π½Π΅ΠΌ Π·Π΄Π΅ΡΡ ΠΏΠΎΠ²ΡΠΎΡΡΡΡ ΡΡΠΈ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ QTextBrowser ΠΈΠ»ΠΈ Qt Assistant ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π·Π°Π²ΠΈΡΡΡΠΈΠ΅ ΠΎΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΠΏΠΎΠΌΠΎΡΠΈ. ΠΠ»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Windows ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ»Ρ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΠΎΠΌΠΎΡΠΈ Windows HTML Help ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π½ΠΈΠΌ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Internet Explorer ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Microsoft. ΠΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡ Qt QProcess ΠΈΠ»ΠΈ ΡΠ°Π±ΠΎΡΡΡ ΡΡΠ΅Π΄Ρ ActiveQt. ΠΠ»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ X11 ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΌΠΎΠ³ Π±Ρ ΡΠΎΡΡΠΎΡΡΡ Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠ°ΠΉΠ»ΠΎΠ² HTML ΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ°, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ QProcess. Π Mac OS X ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° Apple Help ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π»Ρ Qt Assistant.