宇宙免责声明下列问题均为我在学习qt6c开发指南项目内切实遇见的但我的说法不一定专业且正确只是分享我在开发中遇见的问题帮助有需要的人如果发现错误欢迎评论项目一通过信号和槽实现点击按钮实现文本框内容对应变化###首先进入复选框在开发过程中发现即使设置了对应的字体变化且确定信号触发后文本样式依旧不变如图设置了加粗依旧无变化默认字体为微软雅黑加粗效果明显这里没实现为了排除信号连接失败等其他干扰直接在widget构造函数内进行初始化设置确保设置成功但是结果依旧失败经研究发现其实是因为我在Ui设计时为了显示不那么空在设计时顺带设置了文本框的内容而这个时候就产生了一个HTML样式ai说法请注意辨别而 ui-textEdit-setFont(font);操作无法覆盖已有的HTML因为ui内设置的优先级较高font的优先级较低无法覆盖html这时候可以通过clear()函数清除原有的样式或者通过settext()直接通过纯文本覆盖HTML文本达到清除样式的效果方式一通过直接设置文本取代HTMLsetText(Qt 6 c开发指南 )方式二通过clear()清除全部样式在涉及样式改变的操作时如果不要求改变文本的字体大小字体类型等样式时在改变font之前要读取当前文本框的内容并赋值否则会清除已有样式表下图原来为仿宋字体没有获取当前文本样式直接设置加粗结果导致采用默认样式从仿宋变为了微软雅黑而获取当前样式后设置就没问题了###这个问题是焦点转移引发的问题进入单选按钮功能设置时在实现时发现即使我勾选了该按钮输入后续的文本依旧为黑色考虑是不是信号没被触发加入调试信息输出结果为信号触发为什么信号触发后后续输入文本无变化呢经过测试发现是因为在勾选按钮后文本框焦点转移到了按钮那必须手动将光标定位到文本框内这样又将焦点转移到了文本框但是这会导致自动实现文本框的内置函数比如自动识别光标处的文本样式并保持这个样式导致输入文本没有按我们的设定显示而是原先的样式这时必须手动点击文本框光标才出现但是手动点击文本框后以下为我的猜测点击文本框后焦点转移就认为按钮事件结束所以不会再执行内部的命令了输入的文本样式无法修改解决方法就是我们在按钮内部设置焦点的转移不用手动点击才出现光标转移焦点而是在按钮触发时自动转移焦点这样就可以在按钮函数的生命周期内完成焦点转移实现想要的效果前面猜测焦点转移导致按钮周期结束这里直接在周期内完成转移这需要获取按下按钮之前的光标在文本中的位置并在按下后将光标显示并转移到该位置解决初始我没设置文本框的焦点会出现运行程序后不出现光标需要手动点击文本框才显示这里优化一下效果如下即使是这样该代码依旧有一点缺陷当已经点击按钮后再手动改变光标位置则无法成功修改样式我在wps里测试了一下也有同样的问题我的目的是当点击按钮后如果手动切换了光标位置则代表颜色的按钮切换为默认黑色但是我做不到即使询问ai依旧无法实现