Qt6.6 按钮添加点击事件

1. 传统 connect 方式:

Qt 的 connect 函数用于连接信号和槽,实现信号发送者与接收者之间的通信。

用法

  • 连接函数的基本形式是bool QObject::connect(const QObject* sender, const char* signal, const QObject* receiver, const char* member)。
  • 连接时,必须使用SIGNAL()宏来指定信号,使用SLOT()宏来指定槽函数。
  • 如果发送者和接收者是同一个对象,receiver参数可以省略。

参数:

  • 发送者对象:sender,表示信号的发出者。
  • 信号:signal,使用SIGNAL()宏指定要连接的信号。
  • 接收者对象:receiver,表示信号的接收者,即槽函数所在的对象的指针。如果与发送者是同一对象,此参数可以省略。
  • 槽函数:member,使用SLOT()宏指定接收的槽函数。
  • 连接类型:可选参数,用于指定信号与槽之间的连接类型,如Qt::AutoConnection、Qt::DirectConnection、Qt::QueuedConnection等。

返回值

       连接成功时返回true,失败时返回false。

示例

        连接一个按钮的点击信号到一个自定义槽函数:

     connect(button, SIGNAL(clicked()), this, SLOT(onButtonClicked()));

指定连接类型为直接连接(信号发送时直接调用槽函数): 

    connect(sender, signal, receiver, member, Qt::DirectConnection);

注意事项

  • 只有QObject类及其派生类的对象才能使用信号和槽机制。
  • 在多线程环境下,选择合适的连接类型以避免线程安全问题。
  • 使用SIGNAL()和SLOT()宏可以提供编译时的类型检查,确保信号和槽的正确匹配。

2. on_(按钮名字)_clicked函数,在代码中实现点击事件

1、在UI文件里加入按钮,objectName设置为pushButtonA

2、在引用的头文件(比如MainWindow.h)里加入槽的声明:

public slots:

  void on_pushButtonA_clicked();

3、在调用处使用,(比如MainWindow.cpp)。

void MainWindow::pushButtonA_clicked()

{

        qDebug("pushButtonConnect");

}

猜你喜欢

转载自blog.csdn.net/coco_1998_2/article/details/139256256