• 7297阅读
  • 4回复

怎样使子窗体无法移出父窗体 [复制链接]

上一主题 下一主题
离线sd649250
 
只看楼主 倒序阅读 楼主  发表于: 2010-11-12
— 本帖被 XChinux 执行加亮操作(2010-11-12) —
我创建了一个mainWindow,在其中有一个按钮,点下时显示一个QDialog,这个Dialog为mainWindow
的子窗体,怎样使这个子窗体拖动的时候无法移出mainWindow的范围呢
离线g_tree
只看该作者 1楼 发表于: 2010-11-13
继承父窗口的坐标,闲置其活动!
离线sd649250
只看该作者 2楼 发表于: 2010-11-13
那样的话是不是就完全无法移动了,我想要的效果是它本身也可以移动,但是无法移出主窗体外。主窗体移动时子窗体也能跟着移动
离线g_tree
只看该作者 3楼 发表于: 2010-11-13
哈。打错了。是限制其活动。。。。。只要父窗口坐标改动,字窗口也会跟着变动的

只看该作者 4楼 发表于: 2010-11-13
如果要用QDialog的话.
第一, 你要在QDialog的移动事件上检测是否有任何一边移出主窗体的,QDialog的全局矩形为内盒子, 主窗体的全局矩形为外盒子,做盒子碰撞检测就好.内盒子的任何一边超出范围,约束它这个方向的位置就好.
第二,主窗体在移动的时候要同时检测QDialog相对于主窗体的偏移位置, 主窗体移动后也移动对应的QDialog, 主窗体改变大小的时候也要做碰撞测试,不能让QDialog的边框大于主窗体.
快速回复
限100 字节
 
上一个 下一个