LINUX.ORG.RU

[Qt] QHelpContentWidget *QHelpEngine::contentWidget ()

 


0

2

Споткнулся на ровном месте. Необходимо влепить в проект документацию. Решил это дело запилить через сабж. Что я делаю: у меня есть класс, занаследованный от QDialog, в его конструктор я передаю некий helpEngine.contentWidget(). Т.е. выглядит это примерно так:

QHelpEngine helpEngine("help.qhc");
...
Dialog *helpDialog = new Dialog(helpEngine.contentWidget());

А в ответ он мне выдает пустой виджет. help.qhc вроде как сгенерен правильно: как завещала документация. Ну не может здесь быть ошибки, её здесь допускать-то негде. :)

Вот так выглядит help.qhp:

<?xml version="1.0" encoding="CP-1251"?>
<QtHelpProject version="1.0">
	<namespace>test</namespace>
	<virtualFolder>doc</virtualFolder>
	<customFilter name="test">
		<filterAttribute>minitest</filterAttribute>
	</customFilter>
	<filterSection>
		<filterAttribute>minitest</filterAttribute>
		<toc>
			<section title="Howto" ref="index.html">
				<section title="1" ref="elementarno.html#h" />
			</section>
		</toc>
		<keywords>
			<keyword name="small" ref="elementarno.html#small" />
		</keywords>
		<files>
			<file>style/style.css</file>
			<file>*.html</file>
		</files>
	</filterSection>
</QtHelpProject>

Это help.qhcp:

<?xml version="1.0" encoding="CP-1251"?>
<QHelpCollectionProject version="1.0">
	<docFiles>
		<register>
			<file>help.qch</file>
		</register>
	</docFiles>
</QHelpCollectionProject>

Далее соответственно:

$ qhelpgenerator help.qhp -o help.qch
Создание структуры файла...
Добавление индивидуальных фильтров...
Добавление данных справки для раздела фильтра (1 из 1)...
Добавление файлов...
Добавление оглавления...
Добавление указателей...
Документация успешно создана.
$ qcollectiongenerator help.qhcp -o help.qhc 
Чтение файла конфигурации коллекции...
Создание файла коллекции...
Кто имел дело с этим классом, с чем его вообще есть?

★★★★

Последнее исправление: Insomnium (всего исправлений: 2)

И таки да, именно CP-1251.
Уже в глазах плывет. -_-

Insomnium ★★★★
() автор топика
Ответ на: комментарий от UVV

Всё, допинал.

Dialog::Dialog(QWidget *pwgt, QString docLocation) : QDialog(pwgt) {
    pHelpEngine = new QHelpEngine(docLocation, this);
    pHelpEngine->setupData();

    pTabWidget = new QTabWidget(this);
    pTabWidget->setMaximumWidth(200);
    pTabWidget->addTab(pHelpEngine->contentWidget(), trUtf8("By Content"));
    pTabWidget->addTab(pHelpEngine->indexWidget(), trUtf8("By Index"));

    pTextBrowser = new HelpBrowser(pHelpEngine, this);
    connect(pHelpEngine->contentWidget(), SIGNAL(linkActivated(QUrl)),
            pTextBrowser, SLOT(setSource(QUrl)));
    connect(pHelpEngine->indexWidget(), SIGNAL(linkActivated(QUrl)),
            pTextBrowser, SLOT(setSource(QUrl)));
// лэйауты и красивости...
}

Вот как-то так. Наверное это очевидно, но у меня уже мозг плывет.

Insomnium ★★★★
() автор топика
7 декабря 2011 г.
Ответ на: комментарий от MotusAnimi

Помилуйте, батенька. Я забыл про C++, а вы меня о классах из забытых проектов спрашиваете. :) Это не Qt, ЕМНИП. Пропустите этот комментарий.

Insomnium ★★★★
() автор топика
Ответ на: комментарий от fluorite

ага, спасибо) вчера догуглил до этого же примера) нужен он для того чтобы научить QTextBrowser переходить по ссылкам.

в целом получилось очень даже не плохо. хороший пример от Insomnium. а главное, без ассистанта

MotusAnimi
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.