我正在创建一个非常简单的类作为更大项目的一部分。这节课很简单:
class Login : public QDialog
{
Q_OBJECT
private:
QLineEdit* txtUser;
QLineEdit* txtPass;
void setupUI();
public:
Login(QWidget* parent = 0);
};
尝试创建setupUI()
函数时,行txtUser = new QLineEdit;
会崩溃。我尝试过改变很多东西而没有任何帮助。我接受了项目,复制了它,并删除了除了这个类和main.cpp
之外的所有内容,并且没有错误。我回到原来的项目(重装Qt Creator),但仍然失败了。在某种冲突的情况下,我开始评论来自main的随机自写头文件。在评论出每个之后,我会重新编译并运行。每次它都会继续失败。在最后一个之后,它起作用了。然后,我重新启用了所有内容,它再次运行良好。
所以,我的问题是,什么可能导致这种简单代码的这种类型的段错误?另外,如果没有更改代码,我的更改可能会修复它吗?基本上,如果我再次发生这个问题并且我确定没有错误,我应该采取什么步骤?
请记住我在Windows中使用Qt和Qt Creator。
最后,为了完成,这里是setupUI()
:
void Login::setupUI()
{
QVBoxLayout* main = new QVBoxLayout;
QHBoxLayout* userBox = new QHBoxLayout;
QHBoxLayout* passBox = new QHBoxLayout;
txtUser = new QLineEdit;
txtPass = new QLineEdit;
userBox->addWidget(new QLabel("User Name:"));
userBox->addWidget(txtUser);
passBox->addWidget(new QLabel("Password:"));
txtPass->setEchoMode(QLineEdit::Password);
passBox->addWidget(txtPass);
main->addLayout(userBox);
main->addLayout(passBox);
setLayout(main);
}
答案 0 :(得分:2)
有时您需要运行qmake才能使其正常运行。你可以从QtCreator那里做到这一点。