qt按钮切换互斥功能
有这样一种功能:一组按钮,点击其中一个,该按钮被选中,其他按钮取消选中。
我这里简单说一下方法。
创建一个继承自QFrame的窗口类,在上面放几个按钮,按钮属性设置如下:
然后设置按钮的qss,下面是其中一个的按钮(其他按钮类似):data文件夹和exe所在的文件夹在同一目录,下面有几个图片。说明:qss中图片路径是相对于exe的路径;如果想让按钮的图片自适应,要使用border-image,不用使用background-image.
1 QPushButton#btnMap 2 { 3 font-size:28px; 4 font-family:Microsoft YaHei; 5 font-weight:400; 6 color:rgba(205,242,255,1); 7 border-image:url(../data/skin/image/ui/bg_btn_top_normal.png); 8 } 9 QPushButton#btnMap:hover 10 { 11 border-image:url(../data/skin/image/ui/bg_btn_top_hover.png); 12 font-family:Microsoft YaHei; 13 } 14 QPushButton#btnMap:pressed, QPushButton#btnMap:checked 15 { 16 border-image:url(../data/skin/image/ui/bg_btn_top_pressed.png); 17 font-family:Microsoft YaHei; 18 }
加载qss代码:
void AppHelper::LoadStyleSheet(QWidget *dlg, const QString &strQssName) { QString strPath = m_strExePath + "../data/skin/qss/" + strQssName; QFile file(strPath); if (file.open(QFile::ReadOnly)) { dlg->setStyleSheet(file.readAll()); } else { qDebug() << "load qss failed!" << strPath; } file.close(); }
我们初始化其中一个按钮选中:
ui->btnMap->setChecked(true);
按钮图片:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· Trae初体验