Qt基础-窗口(界面)的显示设置

Qt基础-窗口(界面)的显示设置


可以在Qt的帮助文档中搜索“Qt::WindowFlags”或“Qt::WindowStates”来查看窗口的类型;

设窗口的对象为dlg;

  • 最大化显示:
dlg.showMaximized();
  • 模态显示
setWindowModality(Qt::ApplicationModal);
  • 窗口风格WindowFlags

有setWindowFlag()和setWindowFlags()两个函数可供使用;
例如设置窗口无边框且置顶显示:

  1. setWindowFlag(此方法只能在Qt5.9及以上可用)
setWindowFlag(Qt::WindowStaysOnTopHint);	//所有置顶显示
setWindowFlag(Qt::FramelessWindowHint);		//去掉边框
  1. setWindowFlags
setWindowFlags(Qt::WindowStaysOnTopHint|Qt::FramelessWindowHint);	

注意不能分开设置,如果按以下写法,则只会设置无边框,不会置顶显示:

setWindowFlags(Qt::WindowStaysOnTopHint);	
setWindowFlags(Qt::FramelessWindowHint);	

最后一个setWindowFlags会将前面所有的窗口属性设为默认,然后再进行设置,如果要保留前面的设置,可以按如下写法:

setWindowFlags(windowFlags()|Qt::FramelessWindowHint);

如果要取消某(几)个属性,,可以按如下写法:

setWindowFlags(windowFlags()&~(Qt::FramelessWindowHint|Qt::WindowStaysOnTopHint));

常见的窗口属性:

枚举值描述效果
Qt::CustomizeWindowHint关闭默认的窗口属性(貌似只能通过setWindowFlags设置,没有最大/小化、关闭按钮,但可以调节窗口大小)在这里插入图片描述
Qt::FramelessWindowHint去除窗口边界,无法通过鼠标移动、调整窗口大小在这里插入图片描述
Qt::WindowStaysOnTopHint置顶显示(在所有程序的上面,区分模态显示)-
Qt::WindowMinimizeButtonHint添加最小化按钮(如果单独取反只会变成不可点击)在这里插入图片描述
Qt::WindowMaximizeButtonHint添加最大化按钮(如果单独取反只会变成不可点击)在这里插入图片描述
Qt::WindowMinMaxButtonsHint添加最小化和最大化按钮(如果取反会消失)在这里插入图片描述
Qt::WindowCloseButtonHint添加关闭按钮(如果单独取反只会变成不可点击)在这里插入图片描述
  • 常用的设置
setWindowFlags(windowFlags()&~(Qt::WindowMinMaxButtonHint));	//取消最大最小化按钮
setWindowModality(Qt::ApplicationModal);						//置顶显示,阻塞其他窗口
setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint);		//置顶显示,不阻塞其他窗口,在该程序所有窗口之上

dlg.setParent(this,Qt::Window);									//置顶显示,不阻塞其他窗口,只在该父窗口之上,注意:使用此句时在dlg构造函数中使用setWindowFlags设置窗体不起作用,setWindowFlags必须放到setParent之后

setWindowState(windowState() ^ Qt::WindowFullScreen);			//在正常显示和全屏之间切换
//非模态显示,位于其他窗口之上,但是点击其他窗口会置后
dlg.show();
dlg.raise();
  • 设置窗口固定大小
setFixedHeight(sizeHint().height());
setFixedWidth(sizeHint().width());

  • 设置窗口属性setAttribute()
setAttribute(Qt::WA_TranslucentBackground);		//设置窗体背景透明
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值