class MyWidget : public QWidget { public:
MyWidget( QWidget *parent=0, const char *name=0 ); };
MyWidget::MyWidget( QWidget *parent, const char *name )
: QWidget( parent, name ) {
QPushButton *quit = new QPushButton( "Quit", this, "quit" );
quit->setGeometry( 62, 40, 75, 30 );
quit->setFont( QFont( "Times", 18, QFont::Bold ) );
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码quit是在Heap中分配的,因为它是MyWidget的子代,所以它是必需的
为什么Qt需要在堆中分配子对象?
在您的示例中,quit不必是堆分配的.
此代码编译并执行正常:
struct MyWidget : QWidget
{
QPushButton quit;
MyWidget()
{
quit.setGeometry( 62, 40, 75, 30 );
quit.setFont( QFont( "Times", 18, QFont::Bold ) );
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1492 次 |
| 最近记录: |