Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Pariah_War от Май 31, 2010, 00:05



Название: Помогите плиз QTextBrowser,,,,,
Отправлено: Pariah_War от Май 31, 2010, 00:05
Помогите.....Выложите рабочий примет по созданию хелпа....
Я уже все перепробывал и с книг  примеры набирал и сам пытался писать...
Ни чего не помогает .....


Название: Re: Помогите плиз QTextBrowser,,,,,
Отправлено: Pariah_War от Май 31, 2010, 10:11
вот мой файл  main.cpp
Код:
#include <QtGui/QApplication>
#include "helpbrowser.h"

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    HelpBrowser w;
   // w.show();
    return w.exec();
}


Название: Re: Помогите плиз QTextBrowser,,,,,
Отправлено: Pariah_War от Май 31, 2010, 10:14
Вот мой mainwindow.cpp
Код:
#include <qapplication.h>
#include <qlayout.h>
#include <QPushButton>
#include <qtextbrowser.h>
#include "helpbrowser.h"
#include <QHBoxLayout>
#include <QVBoxLayout>

HelpBrowser::HelpBrowser(const QString &path, const QString &page,
QWidget *parent, const char *name)
        //: QWidget(parent, Qt::WA_GroupLeader |Qt::WA_DeleteOnClose)
{
    setAttribute(Qt::WA_DeleteOnClose);
    setAttribute (Qt::WA_GroupLeader);

textBrowser = new QTextBrowser(this);
homeButton = new QPushButton(tr("&Home"), this);
backButton = new QPushButton(tr("&Back"), this);
closeButton = new QPushButton(tr("Close"), this);
closeButton->setShortcut(tr("Esc"));

//QVBoxLayout *mainLayout = new QVBoxLayout(this);
QHBoxLayout *buttonLayout = new QHBoxLayout;//(mainLayout);
buttonLayout->addWidget(homeButton);
buttonLayout->addWidget(backButton) ;
buttonLayout->addStretch();
buttonLayout->addWidget(closeButton);

QVBoxLayout *mainLayout = new QVBoxLayout ;
mainLayout->addLayout(buttonLayout) ;
mainLayout->addWidget(textBrowser);
setLayout(mainLayout);

connect(homeButton, SIGNAL(clicked()),textBrowser, SLOT(home()));
connect(backButton, SIGNAL(clicked()),textBrowser, SLOT(backward()));
connect(closeButton ,SIGNAL(clicked()),this , SLOT(close()));
connect(textBrowser, SIGNAL(sourceChanged(const QString &)),
        this, SLOT(updateWindowTitle()));
textBrowser->setSearchPaths(QStringList() << path << ":/images");
textBrowser->setSource(page);
}

void HelpBrowser::updateWindowTitle()
{
    setWindowTitle(tr("Help: %1").arg(textBrowser->documentTitle()));
    //setCaption(tr("Help: %1").arg(textBrowser->documentTitle()));
}
void HelpBrowser::showPage(const QString &page)
{
QString path = qApp->applicationDirPath() + "/doc";
HelpBrowser *browser = new HelpBrowser(path, page);
browser->resize(500, 400);
browser->show();
}

не хочет работать ....
ошибка - no matching function to :: HelpBrowser
 что не так вроде все как в примере...


Название: Re: Помогите плиз QTextBrowser,,,,,
Отправлено: Гурман от Май 31, 2010, 20:02
мнда... no matching function - это когда у класса есть похожие методы на вызываемый или описываемый, но точно такого же, с такими же параметрами, как производится попытка вызвать - такого нет

в данном случае описан конструктор с параметрами HelpBrowser::HelpBrowser(const QString &path, const QString &page, QWidget *parent, const char *name), но в коде main.cpp такой конструктор нигде не вызван

с таким знанием С++ за написание какого-либо кода не стоит даже думать, чтобы браться... обратно надо идти, к Трупу Страуса...


Название: Re: Помогите плиз QTextBrowser,,,,,
Отправлено: Pariah_War от Июнь 01, 2010, 18:33
Да я завтыкал .....
Извините я новичок но не до такой степени .... =)))
...................................
.Может кто скинуть рабочий пример нелпа.
Заранее спасибо !!!!!!