【转载】Qt设置全局的widget的stylesheet

https://www.xuebuyuan.com/282345.html

Qt设置全局的widget的stylesheet

最近widget都是有焦点和无焦点两种情况,这时我们只需要它在有焦点时改变样式,无焦点时不变。

这时候可以通过qApp->setStyleSheet设置全局所有可能用到的widget的样式。

1 a.setStyleSheet("QPushButton:focus{border: 3px solid red}");

就可以设置按钮被聚焦时,外边画出一个红框。

但是这里注意:不能使用两行qApp->setStyleSheet来设置样式,这样下面的一次调用会覆盖掉上面的一次调用。

1 a.setStyleSheet("QPushButton:focus{border: 3px solid red}");
2 a.setStyleSheet("QLineEdit:focus{border: 3px solid red}");

这样上面第一行的QPushButton的样式设置就不会生效。

可以采用

1 a.setStyleSheet("QPushButton:focus{border: 3px solid red} QLineEdit:focus{border: 3px solid red}");

这样两个widget都会生效。

另外,对于QComboBox,如果需要在被聚焦时和弹出菜单时都绘制红框,则使用如

1 a.setStyleSheet("QComboBox QAbstractItemView{border: 3px solid red} QComboBox:focus{border

猜你喜欢

转载自blog.csdn.net/czppzcx/article/details/85691471