qt拖动窗口时如何判断与另一个窗口重叠

qt拖动窗口时如何判断与另一个窗口重叠,第1张

先获取窗口A的

int thisPosX = mapToGlobal(QPoint(0,0)).x() //this相对屏幕坐标

int thisPosY = mapToGlobal(QPoint(0,0)).y() //this相对屏幕坐标Y

然后移动窗口B的void BBBBBB::mousePressEvent(QMouseEvent *event)函数里面获取B的位置,当B的PosX和PosY等于A的对应值的时候就重叠?

没具体实现,就想了个大概思路。

是启动界面太大。在界面设计完成后,编译运行的启动界面太大,直接超出电脑桌面,点击最大化后即可。Qt是一个跨平台的C++图像用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形界面所需的所有功能。

1、通过调用Linux C 函数

    system("calc.exe")

2、通过QProcess 阻塞调用

    QProcess::execute("calc.exe")/QProcess::startDetached("calc.exe")

3、通过QProcess,非阻塞调用

    QProcess *pro = new QProcess

    pro->start("calc.exe")

注释:

1、前两种方法会阻塞进程,直到计算器程序结束,而第三种方法则不会阻塞进程,可以多任务运行。

2、QT在运行的时候,要启动qws服务,如果用前两种方法,运行的时候,要新开启一个qws,否则不能运行;而第三种方法,则不需要在开启qws,他和主进程公用一个qws。

3、第三种虽然不会阻塞,但是有可能在终端上看不到打印出来的信息。所以要在终端显示信息,可以考虑阻塞模式。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11718123.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存