qpushbutton 点击之后有虚线框
时间: 2023-11-06 20:04:14 浏览: 47
这个虚线框是指 QPushButton 被选中时显示的背景框,一般用于键盘操作。如果您希望去掉这个虚线框,可以使用以下代码:
```cpp
button->setAttribute(Qt::WA_MacShowFocusRect, false); // macOS
button->setAttribute(Qt::WA_TranslucentBackground, true); // Windows
button->setFocusPolicy(Qt::NoFocus); // Linux
```
其中,`setAttribute(Qt::WA_MacShowFocusRect, false)` 可以在 macOS 上去掉虚线框,`setAttribute(Qt::WA_TranslucentBackground, true)` 可以在 Windows 上去掉虚线框,`setFocusPolicy(Qt::NoFocus)` 可以在 Linux 上去掉虚线框。您可以根据您的应用程序平台选择适合您的代码。
相关问题
qpushbutton 点击之后有虚线框,button->setFocusPolicy(Qt::NoFocus);
你的问题是如何去掉 QPushButton 点击后的虚线框。可以通过设置 QPushButton 的 focus policy(焦点策略)来实现。其中,将焦点策略设置为 Qt::NoFocus 可以去掉虚线框。代码如下:
```
button->setFocusPolicy(Qt::NoFocus);
```
需要注意的是,这样做会使得 QPushButton 失去了焦点,也就是说用户无法使用 Tab 键切换焦点到该按钮上。如果需要支持键盘操作,可以考虑设置焦点策略为 Qt::StrongFocus,然后在按钮上添加样式表来改变虚线框的样式。
QPushButton点击之后长亮 再次点击灭
您可以通过设置QPushButton的样式表来实现这个效果。具体步骤如下:
1. 在QPushButton的构造函数中设置样式表:
```
QPushButton::pressed {
background-color: yellow;
}
QPushButton::checked {
background-color: green;
}
```
2. 将QPushButton的checkable属性设置为true,这样点击之后就会进入checked状态。
3. 在QPushButton的clicked信号中判断当前状态,如果是checked状态就将其设置为unchecked状态,否则设置为checked状态。
完整代码如下:
```
QPushButton *button = new QPushButton("Button");
button->setCheckable(true);
connect(button, &QPushButton::clicked, [=](){
if (button->isChecked()) {
button->setChecked(false);
} else {
button->setChecked(true);
}
});
button->show();
```
这样,当您点击按钮时,它会变成黄色,并且在长按时保持黄色状态。再次点击它,它会变成绿色,再次点击它,它会回到黄色状态。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)