• 6950阅读
  • 7回复

【急】關於hide和show的問題[已解決] [复制链接]

上一主题 下一主题
离线午小夜
 

只看楼主 倒序阅读 楼主  发表于: 2010-01-12
今天寫了個媒體播放器。
開始一切都是正常的。在點選了播放器的時候new出來,然後在點選了其他選項的時候delete掉。
可後來需求有變。在播放器播放視頻后點選其它選項的時候delete掉,但是在播放器播放音頻文件的時候不要delete掉,而只是隱藏就行了。相當於後臺播放音樂。
可是。問題出現了,在hide之後再次show出來,畫面能看見,但是控件都失效了,點擊沒有效果。進度條一直在更新,播放列表也一直在更新,而且播放完了當前歌曲會跳轉到下一曲。
qDebug出來的語句看,isActiveWidow,isEnabled,isEnabledTo,isVisible,isVisibleTo 全部都是true。
誰遇到過這樣的情況。hide后show出來,控件全部失效,點選不上。。。
[ 此帖被午小夜在2010-01-29 09:32重新编辑 ]
[操作系统版本]  Windows XP;Linux Ubuntu;Linux Fedora;
[Qt SDK版本]    4.7.0
[SDK 发布日期]  2010.05
[IDE(集成开发环境)] QtCreator
个人网页:http://hi.baidu.com/午小夜
學歷:Royal Jalidon
离线2nd090215
只看该作者 1楼 发表于: 2010-01-12
关注,
离线yangfanxing
只看该作者 2楼 发表于: 2010-01-12
小夜是Taiwan人啊???
————————————
这个。。。没遇见过。。。update?控件不多的话全部->show();一遍?瞎建议的哈~~~工程重新qmake...我只能想这么多了~好多问题也是这么解决的~Hh
up~
PHPWind好恶心。。。不想看这种界面。。。
离线午小夜

只看该作者 3楼 发表于: 2010-01-13
引用第2楼yangfanxing于2010-01-12 23:42发表的  :
小夜是Taiwan人啊???
————————————
这个。。。没遇见过。。。update?控件不多的话全部->show();一遍?瞎建议的哈~~~工程重新qmake...我只能想这么多了~好多问题也是这么解决的~Hh
up~


呃,我不是臺灣人啊。只是最近作的項目是針對臺灣的。所以用了繁體輸入法.
現在 問題已經解決了。但是仍然很迷糊。。。
原因是有不可見的widget放在了當前窗體前,導致點擊事件被截獲了。
我很疑惑的是,在show之前由對當前窗體進行了setWindowFlags(Qt::WindowStaysOnTopHint)。原理上,是可以把當前窗體置頂吧 ?而且,qDebug( )<<當前窗體->isEnableTo(this); 輸出為真...
[操作系统版本]  Windows XP;Linux Ubuntu;Linux Fedora;
[Qt SDK版本]    4.7.0
[SDK 发布日期]  2010.05
[IDE(集成开发环境)] QtCreator
个人网页:http://hi.baidu.com/午小夜
學歷:Royal Jalidon
离线yangfanxing
只看该作者 4楼 发表于: 2010-01-13
那个肯定是置顶的,而且被StayOnTopHint的窗口超越所有的桌面窗口;


————————————————————————
qDebug( )<<當前窗體->isEnableTo(this); 輸出為真...
————————————————————————
“不可見的widget”——似乎就是这个了吧~~~还是模态的!我觉得(可能又觉错了)~呵。。。呵。。。
PHPWind好恶心。。。不想看这种界面。。。
离线午小夜

只看该作者 5楼 发表于: 2010-01-13
引用第4楼yangfanxing于2010-01-13 10:10发表的  :
那个肯定是置顶的,而且被StayOnTopHint的窗口超越所有的桌面窗口;
————————————————————————
qDebug( )<<當前窗體->isEnableTo(this); 輸出為真...
.......


不可見widget不是對話框.只是普通的widget實例.而且還對那個widget進行了setVisible(false)操作...
困惑ING...
[操作系统版本]  Windows XP;Linux Ubuntu;Linux Fedora;
[Qt SDK版本]    4.7.0
[SDK 发布日期]  2010.05
[IDE(集成开发环境)] QtCreator
个人网页:http://hi.baidu.com/午小夜
學歷:Royal Jalidon
离线shiroki

只看该作者 6楼 发表于: 2010-01-28
raise一下
setwindowflags不能直接这样set, 应该把原来的flag都取得, 加上新 的flag再设回去。
--
shiro is White
ki is tree
http://www.cuteqt.com
论坛 http://www.cuteqt.com/bbs
博客 http://www.cuteqt.com/blog
博客镜像: http://sites.cuteqt.com/cuteqt
Linux/Qt/嵌入式讨论群 http://qun.qq.com/air/5699823
离线午小夜

只看该作者 7楼 发表于: 2010-01-29
引用第6楼shiroki于2010-01-28 21:23发表的  :
raise一下
setwindowflags不能直接这样set, 应该把原来的flag都取得, 加上新 的flag再设回去。


哦,了解了,嘿嘿,謝謝師父。
[操作系统版本]  Windows XP;Linux Ubuntu;Linux Fedora;
[Qt SDK版本]    4.7.0
[SDK 发布日期]  2010.05
[IDE(集成开发环境)] QtCreator
个人网页:http://hi.baidu.com/午小夜
學歷:Royal Jalidon
快速回复
限100 字节
 
上一个 下一个