
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[44.197.111.121] |
![]() |
|
Страницы: (3) [1] 2 3 все ( Перейти к последнему сообщению ) |
Сообщ.
#1
,
|
|
|
В общем недавно начал пытаться писать проги на Qt решил написать свой браузер. Вот в общем он у меня работает но есть несколько вопросов.
Итак возможно ли в Qt 4.6 WebKit?: 1. Имеем програму в ней виджет webView, как сделать чтоб при розворачивании программы на весь экран, виджет занимал все свободное пространоство? 2. При старте браузера загрузить .html файл лежащий рядом с exe шником? 3. Впихнуть в браузер флеш? 4. Впихнуть поддержку протокола .https? 5. как реализовать автообновление формы ввода адреса? ну теоретически берем слот с текущим адресом, записываем в переменную, переменную приравниваем к слоту формы, а как именно в Qt??? ато падло даже на int a; в произвольном месте ругаеться) 6. Менеджер паролей ну хотябы такой как в IE просто чтоб запоминало логин и пас и ненадобыло каждый раз входить))))как??? 7. Организация вкаладок, ну например через виджет Tabs а как создать новую вкладку нажатием на клавишу к примеру???? Ну и скрин моих наработок: ![]() Очень жду ответов.......)))) |
Сообщ.
#2
,
|
|
|
В Qt SDK есть демо, которое называется Browser. На большинство вопросов там есть ответ.
|
Сообщ.
#3
,
|
|
|
Цитата 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 а как создать новую вкладку нажатием на клавишу к примеру???? Шоткат привязываешь к слоту в котором создаешь вкладку. А вообще большинство ответов на твои вопросы есть документации. |
Сообщ.
#4
,
|
|
|
А как сделать так чтоб можно было открывать текстовый файл с помощю например своего блокнотика не через файл->открыть а в винде нужный файл -> открыть с помощю выбираю свою погу она открываеться ноо файл не грузиться((((как сделать так???
|
Сообщ.
#5
,
|
|
|
Это скорее всего через COM, надо будет портить реестр и т.д.
но можно очень просто и кросс-платформенно сделать так, чтобы перетаскивать файл из Проводника в открытое окно программы через Drag'n'Drop |
Сообщ.
#6
,
|
|
|
Что эсть COM? Я именно хочу чтоб так было...)))
И еше вот есть у меня tabWidget с WebViewом внутри ![]() ![]() tabWidget->addTab(mpt, tr("Новая вкладка")); Код стоит на кнопочке тоесть при нажатии выполняеться этот код и в теории пожна таких вкладк миллион создать....еще есть обьект lineEdit в который должен передаваться Url обьекта WebView находящевося в выбраной вкладке.КАК???? |
Сообщ.
#7
,
|
|
|
Цитата Что эсть COM http://ru.wikipedia.org/wiki/Component_Object_Model Цитата КАК? Assistant принципиально не читаем? void QTabWidget::currentChanged ( int index ) [signal] |
Сообщ.
#8
,
|
|
|
Цитата Radagast @ Это скорее всего через COM, надо будет портить реестр и т.д. но можно очень просто и кросс-платформенно сделать так, чтобы перетаскивать файл из Проводника в открытое окно программы через Drag'n'Drop Я так мыслю, что у автора просто напросто прога не понимает входные параметры вида proga.exe путь_к_файлу Цитата TJSonic @ Что эсть COM? Я именно хочу чтоб так было...))) http://doc.trolltech.com/4.6/dnd.html |
Сообщ.
#9
,
|
|
|
Блин, а можно на примерчике void QTabWidget::currentChanged ( int index ) [signal].....???
Чтобы именно тот WebView который находиться в выбраной вкладке передавал значение в лайн эдит...... а COM в Qt реализуеться через ActiveQt???? |
Сообщ.
#10
,
|
|
|
TJSonic
Посмотри http://code.google.com/p/arora/ - там есть исходники, на примере можешь посмотреть чего как. |
Сообщ.
#11
,
|
|
|
В демо которое называеться browser тож есть исходник но там както все так запутанно что ппц....(
Помогите разобраться именно с void QTabWidget::currentChanged ( int index ) [signal] ну допустим изменилась вкладка а куда прописывать что делеть??? |
Сообщ.
#12
,
|
|
|
Вот кусок кода из авроры
![]() ![]() 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; } |
Сообщ.
#13
,
|
|
|
Блин шота и вижу вообще дуб.....
В .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/")); |
Сообщ.
#14
,
|
|
|
TJSonic
1. TabWidget - это наследник QTabWidget. 2. currentChanged - это слот TabWidget, который ты должен объявить в h файле. И приконнектить его к соотв. сигналу. |
Сообщ.
#15
,
|
|
|
Допустим....)
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; } ???? |