引用第3楼foxyz于2009-11-26 16:16发表的 :
按照我的做法不会错误, 你把一个控件变量定义成局部变量,出了那个函数就出了作用域了,你再去访问,当然是访问错误.
简单点说,你这个QPushButton *quit 在你要访问的时候早就不存在了. 你把你的代码贴完整了给我看看
我按照您说的,对main.cpp做了如下的改动
/****************************************************************
**
** Qt教程一 - 4
**
****************************************************************/
#include <qapplication.h>
#include <qpushbutton.h>
#include <qfont.h>
class MyWidget : public QWidget
{
public:
MyWidget( QWidget *parent=0, const char *name=0 );
private:
QPushButton *quit;
};
MyWidget::MyWidget( QWidget *parent, const char *name )
: QWidget( parent, name ),quit(NULL)
{
setMinimumSize( 200, 120 );
setMaximumSize( 200, 120 );
quit=new QPushButton( "Quit", this, "quit" );
quit->setGeometry( 62, 40, 75, 30 );
quit->setFont( QFont( "Times", 18, QFont::Bold ) );
connect( quit, SIGNAL(clicked()), qApp, SLOT(quit()) );
}
int main( int argc, char **argv )
{
QApplication a( argc, argv );
MyWidget w;
w.setGeometry( 100, 100, 200, 120 );
a.setMainWidget( &w );
w.show();
return a.exec();
}
.pro和makefile我都是用qmake做的,一点改动没有。
[ 此帖被superrui在2009-11-26 20:08重新编辑 ]