在另外文件中判断按钮是否被点击 qt
时间: 2023-12-30 15:05:54 浏览: 27
如果要在另一个文件中判断按钮是否被点击,需要使用Qt中的信号与槽机制。具体操作如下:
在按钮所在的文件中定义信号:
```cpp
// MyButton.h
#include <QPushButton>
class MyButton : public QPushButton
{
Q_OBJECT
public:
MyButton(QWidget *parent = nullptr);
signals:
void buttonClicked();
private slots:
void onButtonClicked();
};
```
在实现文件中绑定按钮的clicked()信号,并发送自定义的buttonClicked()信号:
```cpp
// MyButton.cpp
#include "MyButton.h"
MyButton::MyButton(QWidget *parent) : QPushButton(parent)
{
connect(this, &QPushButton::clicked, this, &MyButton::onButtonClicked);
}
void MyButton::onButtonClicked()
{
emit buttonClicked();
}
```
在另一个文件中实例化按钮并连接自定义信号:
```cpp
// AnotherClass.cpp
#include "MyButton.h"
void AnotherClass::initButton()
{
MyButton *button = new MyButton(this);
connect(button, &MyButton::buttonClicked, this, &AnotherClass::onButtonClicked);
}
void AnotherClass::onButtonClicked()
{
qDebug() << "Button clicked";
}
```
这样,当按钮被点击时,MyButton会发送自定义的buttonClicked()信号,AnotherClass中的槽函数onButtonClicked()就会被调用。