• 4859阅读
  • 5回复

[提问]QTabWidget每个page多进程? [复制链接]

上一主题 下一主题
离线snow_man_0
 

只看楼主 倒序阅读 楼主  发表于: 2020-10-21
all-in-one适合多个同一目的widget放在一个界面布局QTabWidget标签页适合管理多个功能独立的widget

像chrome一样,让QTabWidget每个page在单独的进程里。拖放Tab时,Tab离开当前QTabBar,会产生新的框架或其它框架的QTabBar能接收这个Tab

好处是每个page在单独的进程里,当前page崩溃时框架不会闪退;在多屏幕时,拖放Tab方便其它屏幕产生框架


拖放和多进程,有没有人研究过这方面?多进程的思路?
离线272064949

只看该作者 1楼 发表于: 2020-10-21
最简单的思路就是,新建tab页时,开启一个子进程,子进程提供winId,来让父进程把窗口展示出来,业务逻辑由子进程自己控制,父进程建立一个tcpserver和子进程的tcpclient通迅,但没有试过,也不知道行不行得通,如果不是什么巨型项目的话建立这么一套体系感觉没什么用啊,还不如就在一个进程里舒服。
1条评分金钱+1
snow_man_0 金钱 +1 - 2020-10-21
离线20091001753

只看该作者 2楼 发表于: 2020-10-21
可能让你失望了:
Qt 规定,界面绘制只能在主线程。
也就是,你不能让多个线程绘制界面。

在 Qt 里,多线程是指:主线程绘制界面,其他线程处理任务与数据。
(づ ̄ 3 ̄)づ
离线snow_man_0

只看该作者 3楼 发表于: 2020-10-21
回 272064949 的帖子
272064949:最简单的思路就是,新建tab页时,开启一个子进程,子进程提供winId,来让父进程把窗口展示出来,业务逻辑由子进程自己控制,父进程建立一个tcpserver和子进程的tcpclient通迅,但没有试过,也不知道行不行得通,如果不是什么巨型项目的话建立这么一套体系感觉没什么用啊,还不如就 .. (2020-10-21 16:22) 

拖放Tab时,框架间转移winId,这个办法可能可行
离线系统用户

只看该作者 4楼 发表于: 2020-10-21
建议调用相关平台的api来实现窗体嵌入操作。
比如Windows下可以调用SetParent把自己的窗体嵌入到其他进程中。
我喜欢玩《吞食天地》
离线snow_man_0

只看该作者 5楼 发表于: 2020-10-22
回 系统用户 的帖子
系统用户:建议调用相关平台的api来实现窗体嵌入操作。
比如Windows下可以调用SetParent把自己的窗体嵌入到其他进程中。 (2020-10-21 22:03) 

查了下,SetParent嵌入的窗体和主窗体之间存在焦点的问题
QWindow::fromWinId可以代替SetParent的功能,不知道存不存在焦点问题
快速回复
限100 字节
 
上一个 下一个