• 8885阅读
  • 11回复

[提问]qt close事件重写问题 [复制链接]

上一主题 下一主题
离线cathy87
 
只看楼主 倒序阅读 楼主  发表于: 2012-04-24
目前点击关闭按钮直接ui里的内容页直接保存下来,我想实现 点击关闭按钮前 先执行“取消保存”函数,再销毁窗体,请问如何实现?


PS:我的界面上其实还有OK CANCEL两个按钮,OK即保存、关闭;CANCEL为取消、关闭,我想让直接点右上角的关闭也实现和CANCEL一样的功能,请问该如何操作啊
离线shiziyang

只看该作者 1楼 发表于: 2012-04-24
可以重新实现closeevent函数,不过这样一来所有关闭操作都会进到该函数里去,需要自己逻辑控制一下。
离线淳于半邪

只看该作者 2楼 发表于: 2012-04-24
你想要实现关闭按钮与取消实现一样的不退出程序的功能,可以用QSystemTrayIcon托盘类;像楼上说的重写也是必须的
离线cathy87
只看该作者 3楼 发表于: 2012-04-24
回 2楼(淳于半邪) 的帖子
有没有不需要重写的方法,比如直接在窗口标题不显示关闭按钮?
我现在查到的只有同时隐藏窗口图标和关闭按钮,或者显示图标,关闭按钮显示但已禁用。
但领导需要显示图标,不显示关闭按钮。。。。
离线cathy87
只看该作者 4楼 发表于: 2012-04-24
回 1楼(shiziyang) 的帖子
我自己还是个菜鸟,才刚刚明白重写是怎么一回事。。。觉得重写的话太麻烦了。。
离线shiziyang

只看该作者 5楼 发表于: 2012-04-24
要不你试试不用qt的接口,使用当前系统的api去截一下消息?不过那样更麻烦,我也不是很懂。
离线淳于半邪

只看该作者 6楼 发表于: 2012-04-24
Qt中还没只删除关闭按钮,不删除最小或最大化按钮的;    
除非三者都删除setWindowFlags(Qt::SubWindow) ; 但是任务栏中没有该程序的任务
一般只能设置其不可用setWindowFlags(Qt::WindowTitleHint | Qt::CustomizeWindowHint | Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint);
其实你可以重写标题栏的,推荐给你个参考例子
http://www.qtcn.org/bbs/apps.php?q=diary&a=detail&uid=119684&did=705
离线cathy87
只看该作者 7楼 发表于: 2012-04-24
回 5楼(shiziyang) 的帖子
我也觉得是啊,看来我还是想想怎么重写closevent()吧
离线cathy87
只看该作者 8楼 发表于: 2012-04-24
回 6楼(淳于半邪) 的帖子
原来如此,领导非说有个禁用的关闭按钮不好看啊,无奈了,研究怎么重写把。。。
离线cathy87
只看该作者 9楼 发表于: 2012-04-24
回 6楼(淳于半邪) 的帖子
恩 谢谢你,我的主窗口自定义标题栏那块就是按这个例子写的,子窗口说就用windows自带的,所以还一直困着呢,实在不行只能再自己定义一个标题栏了
离线淳于半邪

只看该作者 10楼 发表于: 2012-04-24
回 9楼(cathy87) 的帖子
其实看看例子就知道

只看该作者 11楼 发表于: 2019-05-30
大佬们有没有关于时间重写的源码呀,借我观摩观摩,写的事件重写不知道为什么就是不起作用
QAQ
快速回复
限100 字节
 
上一个 下一个