На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела *nix / gcc / Eclipse / Qt / wxWidgets / GTK+
  • При создании темы ОБЯЗАТЕЛЬНО указывайте версию тулкита / библиотеки / компилятора.
  • Перед тем как задать вопрос, сформулируйте его правильно, чтобы вас могли понять.
  • Нарушение Правил может повлечь наказание со стороны модераторов.


Полезные ссылки:
user posted image Boost по-русски
user posted image Qt по-русски
Модераторы: archimed7592
Страницы: (3) [1] 2 3  все  ( Перейти к последнему сообщению )  
> WebKit в Qt
    В общем недавно начал пытаться писать проги на Qt решил написать свой браузер. Вот в общем он у меня работает но есть несколько вопросов.
    Итак возможно ли в Qt 4.6 WebKit?:
    1. Имеем програму в ней виджет webView, как сделать чтоб при розворачивании программы на весь экран, виджет занимал все свободное пространоство?
    2. При старте браузера загрузить .html файл лежащий рядом с exe шником?
    3. Впихнуть в браузер флеш?
    4. Впихнуть поддержку протокола .https?
    5. как реализовать автообновление формы ввода адреса?
    ну теоретически берем слот с текущим адресом, записываем в переменную, переменную приравниваем к слоту формы, а как именно в Qt??? ато падло даже на int a; в произвольном месте ругаеться)
    6. Менеджер паролей ну хотябы такой как в IE просто чтоб запоминало логин и пас и ненадобыло каждый раз входить))))как???
    7. Организация вкаладок, ну например через виджет Tabs а как создать новую вкладку нажатием на клавишу к примеру????

    Ну и скрин моих наработок:
    user posted image


    Очень жду ответов.......))))
      В Qt SDK есть демо, которое называется Browser. На большинство вопросов там есть ответ.
        Цитата TJSonic @
        1. Имеем програму в ней виджет webView, как сделать чтоб при розворачивании программы на весь экран, виджет занимал все свободное пространоство?

        http://doc.trolltech.com/4.6/widgets-and-layouts.html

        Цитата TJSonic @
        2. При старте браузера загрузить .html файл лежащий рядом с exe шником?

        http://doc.trolltech.com/4.6/qwebview.html#setHtml

        Цитата TJSonic @
        3. Впихнуть в браузер флеш?

        http://www.forum.crossplatform.ru/index.php?showtopic=3576

        Цитата TJSonic @
        4. Впихнуть поддержку протокола .https?

        http://www.qtcentre.org/threads/14398-Use-of-QWebView-to-browse-https-secure-sites

        Цитата TJSonic @
        6. Менеджер паролей ну хотябы такой как в IE просто чтоб запоминало логин и пас и ненадобыло каждый раз входить))))как???

        Руками.

        Цитата TJSonic @
        7. Организация вкаладок, ну например через виджет Tabs а как создать новую вкладку нажатием на клавишу к примеру????

        Шоткат привязываешь к слоту в котором создаешь вкладку.

        А вообще большинство ответов на твои вопросы есть документации.
          А как сделать так чтоб можно было открывать текстовый файл с помощю например своего блокнотика не через файл->открыть а в винде нужный файл -> открыть с помощю выбираю свою погу она открываеться ноо файл не грузиться((((как сделать так???
            Это скорее всего через COM, надо будет портить реестр и т.д.
            но можно очень просто и кросс-платформенно сделать так, чтобы перетаскивать файл из Проводника в открытое окно программы
            через Drag'n'Drop
              Что эсть COM? Я именно хочу чтоб так было...)))
              И еше вот есть у меня tabWidget с WebViewом внутри
              ExpandedWrap disabled
                tabWidget->addTab(mpt, tr("Новая вкладка"));

              Код стоит на кнопочке тоесть при нажатии выполняеться этот код и в теории пожна таких вкладк миллион создать....еще есть обьект lineEdit в который должен передаваться Url обьекта WebView находящевося в выбраной вкладке.КАК????
                Цитата
                Что эсть COM

                http://ru.wikipedia.org/wiki/Component_Object_Model

                Цитата
                КАК?

                Assistant принципиально не читаем?
                void QTabWidget::currentChanged ( int index ) [signal]
                  Цитата Radagast @
                  Это скорее всего через COM, надо будет портить реестр и т.д.
                  но можно очень просто и кросс-платформенно сделать так, чтобы перетаскивать файл из Проводника в открытое окно программы
                  через Drag'n'Drop

                  Я так мыслю, что у автора просто напросто прога не понимает входные параметры вида
                  proga.exe путь_к_файлу

                  Цитата TJSonic @
                  Что эсть COM? Я именно хочу чтоб так было...)))

                  http://doc.trolltech.com/4.6/dnd.html
                    Блин, а можно на примерчике void QTabWidget::currentChanged ( int index ) [signal].....???
                    Чтобы именно тот WebView который находиться в выбраной вкладке передавал значение в лайн эдит......



                    а COM в Qt реализуеться через ActiveQt????
                      TJSonic
                      Посмотри http://code.google.com/p/arora/ - там есть исходники, на примере можешь посмотреть чего как.
                        В демо которое называеться browser тож есть исходник но там както все так запутанно что ппц....(
                        Помогите разобраться именно с void QTabWidget::currentChanged ( int index ) [signal]
                        ну допустим изменилась вкладка а куда прописывать что делеть???
                          Вот кусок кода из авроры

                          ExpandedWrap disabled
                            void TabWidget::currentChanged(int index)
                            {
                                WebView *webView = this->webView(index);
                                if (!webView)
                                  return;
                             
                               //Ну а здесь получив указатель на текущий webView соответственно получаем url и пихаем его в line edit
                             
                            }
                             
                            WebView *TabWidget::webView(int index) const
                            {
                                QWidget *widget = this->widget(index);
                                if (WebViewWithSearch *webViewWithSearch = qobject_cast<WebViewWithSearch*>(widget)) {
                                    return webViewWithSearch->m_webView;
                            }
                            Блин шота и вижу вообще дуб.....
                            В .h файл для этого чтонибуть добавлять надо????

                            void TabWidget::currentChanged(int index)
                            {
                            WebView *webView = this->webView(index);
                            if (!webView)
                            return;

                            //Ну а здесь получив указатель на текущий webView соответственно получаем url и пихаем его в line edit

                            }
                            Если так и вставить пишет:
                            D:/my14/mainwindow.cpp:597: error: 'TabWidget' has not been declared
                            D:/my14/mainwindow.cpp:599: error: 'WebView' was not declared in this scope
                            D:/my14/mainwindow.cpp:599: error: 'webView' was not declared in this scope
                            D:/my14/mainwindow.cpp:599: error: invalid use of 'this' in non-member function

                            То что у меня:
                            QTabWidget *tabWidget;
                            QWidget wgtm;
                            QWebView* mpt;

                            Вкладки создаю так:
                            QWidget wgt;

                            tabWidget = new QTabWidget;
                            tabWidget->addTab(new QLabel("str", 0), tr("Новая вкладка"));
                            tabWidget->setMovable(true);
                            tabWidget->setTabsClosable(true);

                            QVBoxLayout *mainLayout = new QVBoxLayout;
                            mainLayout->addWidget(tabWidget);
                            mainLayout->addWidget(ui->webView);
                            wgt.setLayout(mainLayout);
                            wgt.show();
                            QMainWindow::setCentralWidget(tabWidget);

                            Слот создания:
                            mpt= new QWebView;
                            tabWidget->addTab(mpt, tr("Новая вкладка"));
                            mpt->load(QUrl("http://vkontakte.ru/"));
                              TJSonic
                              1. TabWidget - это наследник QTabWidget.
                              2. currentChanged - это слот TabWidget, который ты должен объявить в h файле. И приконнектить его к соотв. сигналу.
                                Допустим....)
                                void TabWidget::currentChanged(int index)
                                {
                                WebView *webView = this->webView(index);
                                if (!webView)
                                return;

                                //Ну а здесь получив указатель на текущий webView соответственно получаем url и пихаем его в line edit

                                }
                                это слот который выполниеться если вкладка меняеться, так?
                                WebView *TabWidget::webView(int index) const
                                {
                                QWidget *widget = this->widget(index);
                                if (WebViewWithSearch *webViewWithSearch = qobject_cast<WebViewWithSearch*>(widget)) {
                                return webViewWithSearch->m_webView;
                                }
                                а се этим что? как его в моем случае записать?
                                mpt *TabWidget::mpt(int index) const
                                {
                                QWidget *widget = this->widget(index);
                                if (WebViewWithSearch *webViewWithSearch = qobject_cast<WebViewWithSearch*>(widget)) {
                                return webViewWithSearch->m_webView;
                                }
                                ????
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (3) [1] 2 3  все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0754 ]   [ 16 queries used ]   [ Generated: 3.10.23, 05:10 GMT ]