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

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

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

最佳答案

您不会出错,因为您赋予QPixmap()函数的setIcon()参数隐式转换为QIcon对象。或者,更好的说,编译器从QIcon隐式创建一个QPixmap对象,因为存在以下构造函数:

QIcon::QIcon(const QPixmap &)

关于c++ - 我正在将QPixmap传递给QAbstractButton::setIcon而不是QIcon,但是我没有收到错误…为什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56547170/

10-12 17:29