Qt:继承QWidget写一个类,该类中有Qlineedit、QLable等控件;使用时实例化该类,但访问该类时出错
请各位大神指导!!程序说明如下:classTWidget::QWidget{public:TWidget();~TWidget();QLineEditle;等等}使用时,...
请各位大神指导!!
程序说明如下:
class TWidget ::QWidget
{
public :
TWidget();
~TWidget();
QLineEdit le;
等等
}
使用时,我实例化该对象,TWidget *widget = new TWidget(); widget->le->setText("ok"); widget->show(); 程序报错,应该是指针问题,可能出现在widget->le->setText()处,比较费解,难道这一子控件被释放了?
那么如何来调用这一lineedit呢,我继承生成的类是要动态生成,获得生成控件中lineedit中的数据!
拜求回答! 展开
程序说明如下:
class TWidget ::QWidget
{
public :
TWidget();
~TWidget();
QLineEdit le;
等等
}
使用时,我实例化该对象,TWidget *widget = new TWidget(); widget->le->setText("ok"); widget->show(); 程序报错,应该是指针问题,可能出现在widget->le->setText()处,比较费解,难道这一子控件被释放了?
那么如何来调用这一lineedit呢,我继承生成的类是要动态生成,获得生成控件中lineedit中的数据!
拜求回答! 展开
展开全部
你没有学过数据封装吗?还用widget->le->setText("ok"); 你不会使用set、get也就算了,这么简单的!
.h文件
class TWidget : public QWidget
{
Q_OBJECT
public:
explicit TWidget(QWidget *parent = 0);
void setLineEditText(QString text);
private:
QLineEdit *line_edit;
};
.cpp文件
TWidget::TWidget(QWidget *parent) : QWidget(parent)
{
line_edit = new QLineEdit(this);
line_edit->setFixedSize(150, 30);
line_edit->move(10, 10);
}
void TWidget::setLineEditText(QString text)
{
line_edit->setText(text);
}
任何时候请不要通过widget->le->setText("ok")这种方式来调用widget里面的东东!OK?
.h文件
class TWidget : public QWidget
{
Q_OBJECT
public:
explicit TWidget(QWidget *parent = 0);
void setLineEditText(QString text);
private:
QLineEdit *line_edit;
};
.cpp文件
TWidget::TWidget(QWidget *parent) : QWidget(parent)
{
line_edit = new QLineEdit(this);
line_edit->setFixedSize(150, 30);
line_edit->move(10, 10);
}
void TWidget::setLineEditText(QString text)
{
line_edit->setText(text);
}
任何时候请不要通过widget->le->setText("ok")这种方式来调用widget里面的东东!OK?
更多追问追答
追问
昨天想了下,直接调用类中的对象可能不行,我使用函数,思路和你的类似,实例化后,调用函数还是出错,
TWidget *widget =new TWidget();widget->setLineEditText(“ok”);运行后还是出错的,我个人认为,实例化twidget后,里面的子控件指针默认被释放了,即使是使用函数也是要调用子控件的指针,所以还是会出错,个人想法,请大神指导!
其实是可以用widget->le->setText("ok");我找到问题所在了,你提供的思路我也用过,只是我继承出来的QWidget子控件很多,还需要用到子控件的很多特性,所以肯定要直接引用,不能用函数代替!
非常感谢您的作答,我是半路出家,有时间会去学习一下 数据封装!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询