簡體   English   中英

QObject::connect() 和 connect() 之間的區別

[英]Difference between QObject::connect() and connect()

我是 Qt 的新手,我想嘗試更好地理解它。

我從 inheritance 的角度知道QMainWindow是從QObject 派生的。 (直接/間接)

這允許我們在 QMainWindow 中以下列方式將信號連接到槽:

`

1- QObject::connect(sender, &QObject::signal, this, &MyObject::slot);
2- connect(sender, &QObject::signal, this, &MyObject::slot);

`

即使兩種方式都很艱難,我也從來不明白它們之間的主要區別是什么。

這是我的問題:

1- 哪種方法性能更好,為什么?

2-為什么程序員有時會使用一個而不是另一個?

我使用了這兩種方法,它們的工作原理似乎相似。

考慮以下代碼。

class Foo { 
  static void fn(); 
};
class Bar: public Foo {
  void bar() {
    // 1
  }
};
void main() {
  // 2
}

如果你想在1調用Foo::fn() ,你可以只寫fn(); 由於 static 函數在派生類的方法內部是“可見的”,您也可以編寫Foo::fn()並且它會做完全相同的事情。 如果你想在2調用它,你只能使用全名Foo::fn()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM