PyQt5 QLineEdit触发登录跳转后QPushButton点击出现多余边框问题
问题原因
你看到的多余边框是Qt控件默认的焦点指示框:按钮被点击后会获得输入焦点,Qt默认会渲染这个虚线框作为焦点提示,你编写的样式表没有覆盖该默认规则,所以会异常显示。
解决方案
你可以任选以下任意一种方法修复:
方案1:样式表新增规则
在所有QPushButton的样式表QPushButton {}块中新增outline: none;即可,以你首页的Options按钮为例,修改后的样式表如下:
button.setStyleSheet( "QPushButton { " "background-color: rgb(37, 41, 46);" "color: rgb(255, 255, 255);" "font: 11pt 'Times New Roman';" "border: 0px solid;" "outline: none;}" # 新增该行即可 "QPushButton:hover { " "background-color: rgb(30, 33, 37);" "}" "QPushButton:pressed { " "background-color: rgb(18, 20, 23);" "}" )
如果登录页的按钮也有同类问题,给登录页两个按钮的样式表也加同样的规则即可。
方案2:修改按钮焦点策略
如果不需要按钮响应键盘焦点,直接设置按钮不接收焦点即可,在按钮创建完成后新增一行代码:
button.setFocusPolicy(QtCore.Qt.NoFocus)
内容的提问来源于stack exchange,提问作者Daniel Frost
相关产品推荐
相关产品推荐

