请问:QT中setPalette( QPalette( QColor( 250, 250, 200) ) )中的 参数是 怎样传递的

来源:百度知道 编辑:UC知道 时间:2024/06/10 07:10:49
在 QT程序中,遇到程序setPalette( QPalette( QColor( 250, 250, 200) ) );,其中setPalette函数在QWidget类中是这样声明的 :virtual void setPalette( const QPalette & ),QPalette类的构造函数这样声明的QPalette ( const QColor &button );
QColor类的构造函数这样声明的QColor ( int r, int g, int b ) ,有以下几点疑问:
1.三个括号中的参数究竟是怎样传递的 ?参数是怎样匹配的 ?
2.QColor( 250, 250, 200)是不是调用了QColor类的构造函数,如果是,,C++中是不允许直接调用构造函数的,又如何解释;如果不是,那又以什么类型返回的?
3.程序语句中是不是嵌套调用,&引用调用是怎样实现的?
请高手不吝赐教,不胜感激

QColor( 250, 250, 200)会生成一个QColor对象作为QPalette构造参数,于是又生成一个QPalette对象作为setPalette的参数.

QColor( 250, 250, 200)是实例化对象,编译器会自动调用构造函数,而”C++中是不允许直接调用构造函数的”是指一个类不能调用其构造函数;比如:
QColor color(250, 250, 200);这时也调用了构造函数,是对的,但
color.QColor(250,250,200)就错了.