最近我有一个想法来研究我的编程技巧,并尝试编写一个简单的应用程序,如跳棋。从一开始我就遇到了一个问题,就是我的应用程序停止工作,在我生成一个新窗口"设置"后几秒钟。我注意到如果我注释掉更改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
我将不胜感激。
答案 0 :(得分:0)
如果没有看到主窗口中的代码,对我来说这个问题并不明显,但我注意到你的设置窗口也来自QMainWindow
,这可能不是你想要的。你可能想要一个模态对话框,这意味着它应该来自QDialog
,或者如果它是你主窗口中的永久居民,你可能想要一个QDockWidget
子类。