我正在用c++构建一个Qt5应用程序。在QPen的示例中,我看到可以按以下方式设置画笔:
QPen* myPen = new QPen();
myPen->setBrush(Qt::cyan);虽然这编译得很好,但它与文档不匹配。QPen的setBrush方法应该接收一个QBrush。为什么传入一个Qt::GlobalColor是可以接受的呢?从QPen.h文件中可以看出,setBrush似乎没有被重载。
发布于 2015-12-31 03:49:28
QBrush有一个用于Qt::GlobalColor的转换构造函数,即编译器可以使用它将Qt::GlobarColor转换为QBrush。
这是它在qbrush.h中的定义
QBrush(Qt::GlobalColor color, Qt::BrushStyle style = Qt::SolidPattern)这个构造函数是在您的myPen->setBrush(Qt::cyan);函数调用中调用的,用于为您创建一个QBrush并传递给setBrush()。
请查看this以了解有关转换构造函数概念的更多信息。
https://stackoverflow.com/questions/34540602
复制相似问题