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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Табы как в броузере  (Прочитано 5796 раз)
Azazello
Самовар
**
Offline Offline

Сообщений: 103


Просмотр профиля
« : Декабрь 06, 2018, 17:32 »

У кого какие идеи реализации?
Одно и то же приложение, много копий запущено. Как бы так сделать, чтобы выглядели как одно. Полный аналог любого современного броузера, где каждый таб - отдельный броузер.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #1 : Декабрь 07, 2018, 01:00 »

Ну, можно сделать несколько табов, в каждый таб добавить по броузеру, а потом эти табы соединить в одно.  То есть new QTab, в него добавить QWebBrowser, а потом в QTabWidget добавить эти QTab. И весь этот QTabWidget добавить в приложение. Одно приложение и получится, с табами, а в каждом табе будет по броузеру.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Azazello
Самовар
**
Offline Offline

Сообщений: 103


Просмотр профиля
« Ответ #2 : Декабрь 07, 2018, 14:36 »

Ну, можно сделать несколько табов, в каждый таб добавить по броузеру, а потом эти табы соединить в одно.  То есть new QTab, в него добавить QWebBrowser, а потом в QTabWidget добавить эти QTab. И весь этот QTabWidget добавить в приложение. Одно приложение и получится, с табами, а в каждом табе будет по броузеру.

Та нет. Вы меня не правильно поняли. Но судя по всему - это моя вина. Программа ничего общего с броузером не имеет.
Представте, что вам нужно запустить десятки копий одной и той же программы. Либо она засрет весь таск бар (что раньше броузеры и делали), либо сделать как в броузере - новая копия программы - новый таб.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #3 : Декабрь 12, 2018, 15:48 »

Аа, имеется в виду Multi Instance Application (MIA)?
Это чисто системно-зависимая штука тогда, необходимо каждой инстанции знать все процессы своих "копий" и уметь между ними переключаться.

Посмотрите класс CPlatformServices, а именно CPlatformServices::GetRunningPIDs() и CPlatformServices::SetActiveWindow тут:
https://github.com/ArsMasiuk/qvge/blob/master/src/appbase/CPlatformServices.cpp

И еще там же класс CMainWindow::updateInstance() и далее по коду instance management.
Там строится меню, через которое можно активировать другие инстанции приложения.
Аналогично, думаю, можно на табы перестроить.
« Последнее редактирование: Декабрь 12, 2018, 15:51 от Racheengel » Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Day
Частый гость
***
Offline Offline

Сообщений: 290


Просмотр профиля
« Ответ #4 : Декабрь 16, 2018, 23:50 »

Простите ради Бога, но мне эта тема навеяла вопрос, о котором думаю уже давно, и даже не знаю, с какой стороны подступиться. Возможно, он лежит далеко от темы, а возможно и не очень. Наверное, он не имеет вообще отношения к Qt, а только к WinAPI.
Есть Windows-программа (да еще на OWL, не к ночи будь помянута). Она - MDI. И вот на Qt я могу создать очень красивый отчет. И если бы вставить в MDI-окно этот отчетик, то счастью моему не было бы предела. От него многого не надо. ReadOnly. но чтобы вел себя как обычное MDI-окно. Под управлением W-приложения. Из которого я вызываю Q-приложение. И умею между ними посылать сообщения.
Реальна ли вообще реализация моих чаяний? Стоит ли на этом форуме создавать новую тему по этому поводу? Или же все-таки эта тема лежит в ведении WinAPI, и не фига форум засорять?
... Эта тема меня еще навела на мыслю, что MDI и QTabWidget очень похожи. То есть выполняют аналогичные функции, но каждая со своими мелкими заморочками...
Увы! Советы заменить-переписать мою главную W-программу мне помочь не смогут. Она слишком древняя и чрезвычайно запутанная. И у нее есть некоторое количество консервативных пользователей. Моя идея в том, чтобы потихоньку заменять ее функции, построенными на правильных фреймворках, к которым я в первую очередь отношу Qt. Пока от нее не останется только вызов нужных Qt-приложений. Не знаю, успею ли, но вот есть чем заняться...
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #5 : Декабрь 17, 2018, 07:09 »

Реальна ли вообще реализация моих чаяний? Стоит ли на этом форуме создавать новую тему по этому поводу? Или же все-таки эта тема лежит в ведении WinAPI, и не фига форум засорять?
Цитировать
- я что, испортил праздник?
- по правде говоря, дружище, ты сделал его даже лучше
Улыбающийся Насколько я понял, Вам нужно не Qt-приложение, а Qt dll которая занимается одним окном и вызывается из другого (не Qt) приложения. Это было, и не раз, но так давно что никаких подрбностей - увы, навскидку не вспомню.

Увы! Советы заменить-переписать мою главную W-программу мне помочь не смогут. Она слишком древняя и чрезвычайно запутанная. И у нее есть некоторое количество консервативных пользователей. Моя идея в том, чтобы потихоньку заменять ее функции, построенными на правильных фреймворках, к которым я в первую очередь отношу Qt. Пока от нее не останется только вызов нужных Qt-приложений. Не знаю, успею ли, но вот есть чем заняться...
Лет 10 назад у меня была такая же задача - портинг на Qt. Причем "W-приложение" было с лимон строк, и не так себе "считая подключенные либы", а самопальных. И тоже я начал с использования Qt как плагина для одного из редакторов. Ну заработало, но очень быстро я устал от множества "костылей" - связок между Qt и "не Qt" кодом. Стало очевидным что такое "по частям" совершенно бесперспективно.

Не хочу растекаться на неск страниц о подробностях портинга, да и "узурпировать" чужую тему нехорошо Улыбающийся В 2 словах - да, переписывать главное приложение придется, вопрос как это делать. Создадите тему - поддержу обсуждение.

Записан
Day
Частый гость
***
Offline Offline

Сообщений: 290


Просмотр профиля
« Ответ #6 : Декабрь 17, 2018, 11:31 »

Igors, Насколько понял я, ваш опыт для меня бесценен.
Тему создам обязательно, только с мыслями соберусь...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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