c++ - QT 应用程序停止工作

标签 c++ qt crash

最近我有一个想法来提高我的编程技能,并尝试编写一个简单的应用程序,例如跳棋。自从开始后不久,我就遇到了一个问题,即我的应用程序在生成新窗口“设置”后几秒钟内停止工作。我注意到,如果我注释掉更改 MainWindow 类玩家名称的行,则不会发生这种情况。 SettingsWindow 是 MainWindow 类中的一个 guest 。这是一个代码。

#include "settingswindow.h"
#include "ui_settingswindow.h"

settingsWindow::settingsWindow(QWidget *parent, QString player1, QString player2) :
    QMainWindow(parent),
    ui(new Ui::settingsWindow)
{
    ui->setupUi(this);
    ui->lineEdit_P1->text()=player1;
    ui->lineEdit_P2->text()=player2;

}

settingsWindow::~settingsWindow()
{
    delete ui;
}

void settingsWindow::on_lineEdit_P1_editingFinished()
{
    chng->player1_Name = ui->lineEdit_P1->text(); 
}

void settingsWindow::on_lineEdit_P2_editingFinished()
{
    chng->player2_Name = ui->lineEdit_P2->text();
}

和头文件。

#ifndef SETTINGSWINDOW_H
#define SETTINGSWINDOW_H

#include <QMainWindow>
#include "mainwindow.h"
class MainWindow;

namespace Ui {
class settingsWindow;
}

class settingsWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit settingsWindow(QWidget *parent = 0);
    explicit settingsWindow(QWidget *parent, QString player1, QString player2);
    ~settingsWindow();

private slots:
    void on_lineEdit_P1_editingFinished();

    void on_lineEdit_P2_editingFinished();

private:
    Ui::settingsWindow *ui;
    MainWindow *chng;
};

#endif // SETTINGSWINDOW_H

我将不胜感激任何帮助。

最佳答案

如果没有看到主窗口中的代码,问题对我来说并不明显,但我确实注意到您的设置窗口也源自QMainWindow,这可能不是您想要的。您可能需要一个模式对话框,这意味着它应该从 QDialog 派生,或者如果它永久驻留在您的主窗口中,您可能需要一个 QDockWidget 子类。

关于c++ - QT 应用程序停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24555968/

相关文章:

c++ - 为什么初始化列表优先于分配?

c++ - C++的system()是同步的吗?

qt - vs2013 编译用于调试但不用于发布?

android - Sentry上传在Android Studio中失败

c++ - 单例的段错误

c++ - 如何使 c++ fstream 类引用在 Visual Studio 2010 CLR 中编译

c++ - 识别 Windows 中连接的驱动器

qt - 如何根据 `Qtableview` 中的选择禁用/启用按钮

QT + OpenCV 未定义对 cv::stereoBM::create(int,int) 的引用

我的应用程序的 Android APK 下载不起作用,Xamarin.Android