• 4806阅读
  • 3回复

[提问]能否在非QMainWindow中使用QDockWidget [复制链接]

上一主题 下一主题
离线zxh1982a
 

只看楼主 倒序阅读 楼主  发表于: 2013-03-14
我有一个程序,在其中的一个子窗口中想做一个停靠窗口,后来发现QDockWidget必须使用QMainWindow才能移动。
能否在普通Widget类上放置QDockWidget吗?


还有如果必须使用QMainWindow才能使用停靠,能否将QMainWindow做为一个子窗口呢。
我试过将:
QWidget mainWindow = new QWidget;
QMainWindow* child = new QMainWindow(mainWindow);
QToolButton* button = new QToolButton(child);
mainWindow.show();


child 无法显示,看不到里面的button 。


            
离线roywillow

只看该作者 1楼 发表于: 2013-03-14
QMainWindow一般不作为子窗口吧,除非你把它的Qt::Window flag给强制去掉?
dockwidget不用在mainwindow里还真没试过……
我觉得把基于QWidget的窗口转为QMainWindow也不是太难,直接在QMainWindow中把这个QWidget实例化之后设置为mainwindow的centralWidget
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线pxiao_xiao

只看该作者 2楼 发表于: 2013-03-14
实现什么形式的停靠?
QWidget里 你试试自定义个QDockWidget的titleBar 重写里面的鼠标事件 将鼠标信息传递给QWidget 用以实现拖拽
离线zxh1982a

只看该作者 3楼 发表于: 2013-03-18
我强制把Window标志去了,可以桌为子窗口
快速回复
限100 字节
 
上一个 下一个