Russian Qt Forum
Ноябрь 24, 2024, 17:48 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: создание help для программ  (Прочитано 7943 раз)
eldar85
Гость
« : Январь 14, 2011, 00:56 »

Хочу сделать окно помощи для программки. Сделал пока простенькую, просто открывается окно QWidget в нем пара кнопок и QTextBrowser и в нем написана инфа как пользоваться, но это выглядит так убого.
 Хочется сделать красивое окошечько с сылками в QTextBrowserе чтобы нажимая ссылку открывалось следующая страничка, в общем что то похожее на Qt Accistent.

Создается окно:

Код:
    QWidget* widget = new QWidget/*(0, Qt::FramelessWindowHint)*/;

    
    widget->setMinimumSize(700, 500);
    
    QTextBrowser* text = new QTextBrowser;
    QPushButton* buttonForward = new QPushButton(">>");
    QPushButton* buttonBack = new QPushButton("<<");
    QPushButton* buttonHome = new QPushButton("Home");
    QHBoxLayout* layoutH = new QHBoxLayout;
    QVBoxLayout* layoutV = new QVBoxLayout;
    
    layoutH->addWidget(buttonBack);
    layoutH->addWidget(buttonHome);
    layoutH->addWidget(buttonForward);
    layoutH->addStretch();
      
    layoutV->addWidget(text);
    layoutV->addLayout(layoutH);
    
    widget->setLayout(layoutV);
    widget->setWindowTitle(tr("Описание работы программы"));
    widget->setWindowIcon(QIcon( ":/images/help.png" ));

    text->setStyleSheet( "background: silver" );

   widget->show();

....
}


а вот дальше как из документа воткнуть в QTextBrowser HTML(его почти не знаю, точнее немного знаю, но ссылку активную не могу сделать имено в QTextBrowsere) и сделать активные ссылочки (вообще не знаю как их делать), ну и конечно чтобы по нажатию этой ссылки открывался другой документ в QTextBrowsere.

Если не сложно товарищи профессионалы то малюсинький примерчик.

вот то что я надыбал, но у меня не получилось это реализовать.

http://cgui.ru/gui292.htm

по идее мне бы пример этот имено HTML, то можно было бы и так сделать как в том примере http://cgui.ru/gui292.htm
« Последнее редактирование: Январь 14, 2011, 01:25 от eldar85 » Записан
eldar85
Гость
« Ответ #1 : Январь 14, 2011, 02:24 »

)) вроде получилось, подсмотрел в исходниках QAccistenta.
Создаем несколько файлов, к примеру основной index.html - затем в него подобный HTML код

Код:
<ul>
   <li><a href="findfile.html">Find File</a></li>
            <ul>
                <li><a href="filedialog.html">File Dialog</a></li>
                <li><a href="wildcardmatching.html">WildCard Matching</a></li>
                <li><a href="browse.html">Browse</a></li>
            </ul>
   <li><a href="openfile.html">Open File</a></li>
</ul>

ну и само собой вот эти файлики по контексту
indfile.html
filedialog.html
wildcardmatching.html
browse.html
openfile.html

и все отлично работает. Добавляем конекты:
Код:
...
    connect(buttonBack, SIGNAL(clicked()), text, SLOT(backward()));
    connect(buttonForward, SIGNAL(clicked()), text, SLOT(forward()));
    connect(buttonHome, SIGNAL(clicked()), text, SLOT(home()));

    connect(text, SIGNAL(backwardAvailable(bool)), buttonBack, SLOT(setEnabled(bool)));
    connect(text, SIGNAL(forwardAvailable(bool)), buttonForward, SLOT(setEnabled(bool)));

    connect(text, SIGNAL(sourceChanged(QUrl)), widget, SLOT(update()));
...
« Последнее редактирование: Январь 14, 2011, 03:40 от eldar85 » Записан
eldar85
Гость
« Ответ #2 : Январь 14, 2011, 02:52 »

Вот только еще бы одну вещь хотел узнать, к примеру у меня в QTextBrowser е есть ссылки на какие то файлы, но мне нужно еще чтобы были ссылки запускающие веб браузер и открывающие сайт какой я укажу. Кто знает как такое сделать???
Записан
Blackwanderer
Гость
« Ответ #3 : Январь 14, 2011, 06:42 »

А вы не думали об использовании QtWebKit? Я всегда делаю полноценный мини браузер для отображения справки. Соответственно сразу отпадает вышеназванная проблема.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #4 : Январь 14, 2011, 09:19 »

void QTextBrowser::anchorClicked ( const QUrl & link ) [signal]
Записан

Qt 5.11/4.8.7 (X11/Win)
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #5 : Январь 14, 2011, 09:58 »

Цитата: Черный Странник
А вы не думали об использовании QtWebKit? Я всегда делаю полноценный мини браузер для отображения справки. Соответственно сразу отпадает вышеназванная проблема.
Для обычной справки вполне достаточно встроенного в QtGui RichText-а. Имхо, QtWebKit уж больно тяжел для help-a.
Записан

Qt 5.11/4.8.7 (X11/Win)
eldar85
Гость
« Ответ #6 : Январь 14, 2011, 10:52 »

QWebView слишком тяжел для справки, это же с прогой придется дллку QtWebKit придется закидывать, а она весит точно не помню, но по моему в несжатом состоянии больше 10 метров.

А как заиспользовать его в HTML документе?Непонимающий? У меня ведь в нем ссылки на файлы есть и хочу еще несколько ссылочек на сайты сделать.
Что то скорее связанное с  QDesktopServices::openUrl() но как это все связать?
« Последнее редактирование: Январь 14, 2011, 11:04 от eldar85 » Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #7 : Январь 14, 2011, 11:33 »

Цитировать
Что то скорее связанное с  QDesktopServices::openUrl() но как это все связать?
Да, действительно использовать QDesktopServices наверное будет лучше. К тому же QTextBrowser и будет его использовать, если
включить QTextBrowser::setOpenExternalLinks( true )
Записан

Qt 5.11/4.8.7 (X11/Win)
vvvxmag
Гость
« Ответ #8 : Январь 14, 2011, 11:59 »

Я в свое время сделал так что Ассистант вкомпиливался в прогу и из нее запускался. Нужно только создать соответсвующий файл *.adp для Ассистанта. И в вашем приложении Будет полноценная красивая справка
Записан
eldar85
Гость
« Ответ #9 : Январь 14, 2011, 12:59 »

Хочется свою страничку помощи сделать, асистент конечно красиво, но у меня не хуже получилось. Симпотично смотриться))

Спасибо всем за помощь)

помогло:
Код:
text->setOpenExternalLinks(true);
Записан
panAlexey
Гипер активный житель
*****
Offline Offline

Сообщений: 864

Акцио ЗАРПЛАТА!!!!! :(


Просмотр профиля
« Ответ #10 : Январь 14, 2011, 15:20 »

Цитата: Черный Странник
А вы не думали об использовании QtWebKit? Я всегда делаю полноценный мини браузер для отображения справки. Соответственно сразу отпадает вышеназванная проблема.
Для обычной справки вполне достаточно встроенного в QtGui RichText-а. Имхо, QtWebKit уж больно тяжел для help-a.
+1
Записан

Win Xp SP-2, Qt4.3.4/MinGW. http://trdm.1gb.ru/
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 23.