我正在用Qt5构建一个c ++应用程序。在QPen的例子中,我看到我可以按如下方式设置画笔:
QPen* myPen = new QPen();
myPen->setBrush(Qt::cyan);
虽然编译得很好,但它与文档不符。 QPen的setBrush方法应该接收QBrush。为什么传递Qt :: GlobalColor是可以接受的?从QPen.h文件中看,setBrush似乎没有重载。
答案 0 :(得分:0)
QBrush
有Qt::GlobalColor
的转换构造函数,即编译器可以使用它将Qt::GlobarColor
转换为QBrush
。
以下是qbrush.h
中的定义:
QBrush(Qt::GlobalColor color, Qt::BrushStyle style = Qt::SolidPattern)
此构造函数是在myPen->setBrush(Qt::cyan);
函数调用中调用的内容,为您创建QBrush
并传递给setBrush()
。
检查this以了解有关转化构造函数概念的更多信息。