QPushButton两次点击设置不同状态
时间: 2024-05-11 22:18:35 浏览: 82
你可以通过连接QPushButton的clicked()信号来实现这个功能。每次按钮被点击时,clicked()信号都会被触发,你可以在槽函数中检查按钮的当前状态,并设置不同的状态。
例如,你可以定义一个成员变量`m_clicked`来记录按钮是否被点击过,然后在槽函数中切换按钮的状态:
```cpp
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget *parent = nullptr);
private slots:
void onButtonClicked();
private:
QPushButton *m_button;
bool m_clicked;
};
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
, m_clicked(false)
{
m_button = new QPushButton("Click me", this);
connect(m_button, &QPushButton::clicked, this, &MyWidget::onButtonClicked);
}
void MyWidget::onButtonClicked()
{
if (m_clicked) {
m_button->setText("Click me");
m_clicked = false;
} else {
m_button->setText("Clicked");
m_clicked = true;
}
}
```
在这个示例中,如果按钮被点击过,就将按钮的文本设置为"Click me",并将`m_clicked`变量设置为false;如果按钮没有被点击过,就将按钮的文本设置为"Clicked",并将`m_clicked`变量设置为true。这样,每次按钮被点击时,它的状态就会切换。
阅读全文