我正在编写简单的番茄钟应用程序,它基本上是倒数计时器。现在,我已经开始倒计时了,但奇怪的是,当我向我的类(任意)添加另一个属性时,我得到了 Sedmentation 错误错误。
使用gdb,问题应该出在这里:
void Status::showPomodoroTime() {
QTime time = pomodoroTime->addSecs(elapsed);
activeTime->display(time.toString("mm:ss"));
}
其中 activeTime 是 QLCDNumber 小部件,elapsed 是 int。
更多背景:
void Status::createDefaultIntervals()
{
pomodoroInterval = new QTime(0, 25);
pomodoroBreak = new QTime(0, 5);
pomodoroLongBreak = new QTime(0, 15);
}
void Status::run()
{
if (pomodoroActive == STOP) {
pomodoroTime = pomodoroInterval;
showPomodoroTime();
}
pomodoroActive = RUN;
updateStatusArea();
timerTick();
}
CreateDefaultInterval 肯定在 showPomodoroTime 之前运行。
让我烦恼的是,整个应用程序运行良好。就在我添加另一个属性时,它开始抛出 sedfault。
*.h 文件中的变量声明如何导致 *.cpp 中的段错误?
如果你想要更多代码,我可以把它放在任何地方。就是不知道,什么地方够坚持。不想在这里发布(大约 300 行代码)。