qpen的setbrush方法参数与文档不匹配

时间:2015-12-31 03:25:41

标签: c++ qt

我正在用Qt5构建一个c ++应用程序。在QPen的例子中,我看到我可以按如下方式设置画笔:

QPen* myPen = new QPen();
myPen->setBrush(Qt::cyan);

虽然编译得很好,但它与文档不符。 QPen的setBrush方法应该接收QBrush。为什么传递Qt :: GlobalColor是可以接受的?从QPen.h文件中看,setBrush似乎没有重载。

1 个答案:

答案 0 :(得分:0)

QBrushQt::GlobalColor的转换构造函数,即编译器可以使用它将Qt::GlobarColor转换为QBrush

以下是qbrush.h中的定义:

QBrush(Qt::GlobalColor color, Qt::BrushStyle style = Qt::SolidPattern)

此构造函数是在myPen->setBrush(Qt::cyan);函数调用中调用的内容,为您创建QBrush并传递给setBrush()

检查this以了解有关转化构造函数概念的更多信息。