我试图弄清楚这个错误。我有一个使用Qt Creator创建的简单应用程序。
我有三个按钮,其中两个未启用。然后按下第一个按钮我想让它们可见,但是当我按下按钮时,会出现Windows错误:“程序停止工作”。该程序编译并执行其他所有操作。
QPushButton *dealButton = new QPushButton(tr("Deal cards"));
dealButton->show();
QPushButton *hitButton = new QPushButton(tr("HIT"));
hitButton->show();
hitButton->setEnabled(false);
QPushButton *standButton = new QPushButton(tr("STAND"));
standButton->show();
standButton->setEnabled(false);
...
connect(dealButton, SIGNAL(clicked()), this, SLOT(dealCards()));
...
void MainWindow::dealCards()
{
hitButton->setEnabled(true);
standButton->setEnabled(true);
}
这就是代码。
答案 0 :(得分:4)
问题是你要在构造函数中重新声明dealButton
和其他人(或者你正在显示new
个调用的任何函数。)
你的班级定义应该有:
private: // probably
QPushButton *dealButton;
在你的构造函数或gui初始化代码中:
dealButton = new QPushButton(...); // note: not QPushButton *dealButton = ...
您现在所拥有的是创建一个名为dealButton
的新变量,该变量是该范围(函数)的本地变量。该变量隐藏(屏蔽)该类的成员。