我正在将QPixmap传递给QAbstractButton :: setIcon而不是QIcon,但是我没有收到错误...为什么?

时间:2019-06-11 15:34:20

标签: c++ qt

只是想了解为什么我不是在这里出现错误。 QAbstractButton的成员函数setIcon(实际上我正在使用QPushButton,但我认为两者都相同)采用QIcon参数...

该函数看起来像:void setIcon(const QIcon &icon),但我认为它没有重载。那么为什么我可以调用该函数并给它一个QPixmap作为参数却没有得到错误呢?

此行:PB->setIcon(QPixmap());,其中PB是QPushButton对象,不会给我一个错误,我只想知道为什么,因为我是C ++的新手,也许我错过了一些东西更根本。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:2)

您不会出错,因为您为QPixmap()函数提供的setIcon()参数隐式转换为QIcon对象。或者,更确切地说,由于存在以下构造函数,编译器会从QIcon中隐式创建一个QPixmap对象:

QIcon::QIcon(const QPixmap &)