Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt内信号与插槽连接的标准方式_Qt_Qt5_Signals Slots - Fatal编程技术网

Qt内信号与插槽连接的标准方式

Qt内信号与插槽连接的标准方式,qt,qt5,signals-slots,Qt,Qt5,Signals Slots,我刚刚用Qt5在QtCreator中开发了一小段时间的应用程序,并且刚刚学习了如何将信号与插槽连接起来。据我所知,有几种方法: 使用connect()方法: 使用QObject类提供的connect()方法: connect( sender, SIGNAL( valueChanged( QString, QString ) ), receiver, SLOT( updateValue( QString ) ) ); 或使用Qt5: connect( sender, &Sender::v

我刚刚用Qt5在QtCreator中开发了一小段时间的应用程序,并且刚刚学习了如何将信号与插槽连接起来。据我所知,有几种方法:

  • 使用connect()方法:
  • 使用QObject类提供的connect()方法:

    connect(
    sender, SIGNAL( valueChanged( QString, QString ) ),
    receiver, SLOT( updateValue( QString ) )
    );
    
    或使用Qt5:

    connect(
    sender, &Sender::valueChanged,
    receiver, &Receiver::updateValue
    );
    
  • 单击“设计”窗口中的一个小部件,选择“进入插槽…”,将创建一个函数。例如,选择signal
    Clicked()
    将生成以下代码:

    void主窗口::在按钮上单击(){}

  • 直接在“设计”窗口中使用“编辑信号/插槽”模式

  • 因此,我的问题是:

  • 连接信号和插槽的标准方式是什么
  • 其他方法有什么意义?我们什么时候用

  • 来源:

    完整答案:@eyllansc所以我应该始终使用connect()?另一种方法是什么?您也可以使用隐式连接,如所单击的按钮上的
    (请参见),但我建议使用带有新语法的显式连接,因为它不太容易受到错误的影响,因为在编译时会验证连接是否有效。@Eylandesc so。。。是否推荐/使用第三种方法?直接在“设计”窗口中使用“编辑信号/插槽”模式。方法?第三种方法使用旧语法,因此您知道我的观点。