我写的一个测试QDockWidget界面,源码设计如下:
//隐藏或显示属性视图docking
ui->PropertyView->setCheckable(true);
ui->PropertyView->setChecked(true);
ui->PropertyView->setVisible(true);
connect(ui->PropertyView,SIGNAL(toggled(bool)),this,SLOT(showDeviceDockWiget(bool)));
以上代码是在构造函数中用到的设置视图菜单中“属性视图”项的关键代码,具体不再解释,现在看一下槽函数showDeviceDockWiget(bool):
void FragmentForensicsUI::showDeviceDockWiget(bool show){
m_tabWidget->showDeviceDockWiget(show);
}//end of method showDeviceDockWiget
这个函数很简单,直接调用了另一个类的函数showDeviceDockWiget(bool show),这个函数最终调用的函数为:
void DeviceInfoView::setShowDocking(bool show){
dockWidget->setShown(show);
}//end of method setShowDocking
这个setShowDocking函数就是最终控制docking显示和隐藏的位置。
详细测试源码上传至http://download.csdn.net/source/2093997
现在问题如下:
1、单击视图->属性视图,这个时候docking为何无法隐藏和显示?
2、参考:同样是菜单响应,单击选显卡内的“测试”菜单内的“控制dock”,却能正常控制docking的显示和隐藏。
请问哪位达人给解决一下问题1,谢谢啦!
------解决方案--------------------
看例子:
http://qt.nokia.com/doc/4.6/demos-mainwindow.html
------解决方案--------------------
你是在Linux下开发的吗?我在windows下看界面上有乱码,代码注释几乎都是乱码
基本的思路貌似没有错误setVisible是没有问题的,测试的那个dock能成功就不用说了.
而你要的那个主菜单的“属性视图”为什么不成功呢?
貌似你那个写的实在是太乱了,至少也要给个构架,或者UML吧。
我看你的代码实在是太痛苦了,一点一点的往回找直到找到setVisibel
我还真没看出什么问题,我追踪了一遍,bool传递没有问题,问题应该出在传给子对象传错了吧