Qlineedit在他的父母面前摧毁了
QLineEdit destroyed before his parent
我在执行此代码时遇到了一些麻烦:
void WidgetAggiungi::btnAggiungi_click(){
QDate data=editData->date();
if (radioTelefonata->isChecked()){
QString numTemp=txtNumero->text();
...
}
当我尝试访问txtnumero时,我会出现一个细分故障。txtnumero是一个被宣布为widgetaggiungi的私人成员的Qlineedit。令我困扰的是,即使QDateEdit Editdata的效果正常,即使以相同的方式宣布并创建了它。
。您在标题文件上声明了txtNumero
。但是在构造函数中,您做到了: QLineEdit* txtNumero = new ...
因此,您不会在标题上初始化txtnumero。这就是为什么它给了您segfault ..
在您的构造函数中:
QLineEdit* txtNumero = new QLineEdit();
您正在宣布本地变量,而不是安排您的班级成员。只需在开始时删除类型:
txtNumero = new QLineEdit();
您有两个问题,其中一个是严重的,另一个是一个较小的内存泄漏:
首先,您像这样创建了QLineEdit
:
QLineEdit* txtNumero= new QLineEdit();
正在创建 local 变量名为 txtNumero
,而不是将其分配给类成员。您应该写这篇文章:
txtNumero= new QLineEdit();
看来您在几个地方犯了这个错误。您应该将类似的解决方案应用于所有修复。
另外,您也应该将父母传递给构造函数,以便它们会自动清理。这样:
txtNumero= new QLineEdit(this);
希望这会有所帮助!
相关文章:
- 尝试应用肖恩父母谈话"inheritance is the base class of evil"中的模式
- 不能将子课送进父母课程
- 摧毁一个不可破坏的基类?
- 如何在3D世界中获得对象相对于父母的绝对位置
- C 从子线中杀死所有父母的孩子
- 为什么父母的方法在孩子被摧毁后仍然存在
- C++:摧毁自己体内的lambda
- 破坏的父母和孩子的顺序
- std ::地图没有父母指针
- 带有taksbar图标但父母的QDialog
- 将PID从孩子转移到父母
- 如何调用父母的同名虚拟功能
- 在我关闭刚开始的孩子对话框并进入父母对话框之后,我的QT桌面应用程序不断崩溃
- 如果孩子不需要父母班级的所有受保护成员,这是不好的班级设计吗?
- qfiledialog:gtkdialog在没有瞬态父母的情况下映射
- 与不同父母的班级中的对象之间发送信号
- 从QStringList中删除子目录,仅保留父母的目录
- C 17:一个临时对象从未被摧毁
- C - 何时被摧毁
- Qlineedit在他的父母面前摧毁了