Ihr Problem ist, dass Sie Ihren Dialog auf dem Stapel erstellen. Deshalb wird der Dialog nach on_action_sszes_Mez_rt_k_triggered()
beendet. Sie müssen Ihr Dialogfeld auf dem Heap erstellen:
#include <QMainWindow>
#include <QScopedPointer>
...
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
QScopedPointer<DialogFields> fields_;
};
...
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
field_.reset(new DialogFields());
}
...
void MainWindow::on_action_sszes_Mez_rt_k_triggered()
{
fields_->adatokFogad((ui->listType->currentRow()+1),
(ui->listGroup->currentRow()),
(ui->tableWidgetField->currentRow()+1),
(ui->actionRemi_mod->isChecked()));
fields_->show();
}
Können Sie Code bereitstellen? –
Sie benötigen wahrscheinlich einen nicht-modalen (Qdialog). – Holt
void MainWindow :: on_action_sszes_Mez_rt_k_triggered() { Felder von DialogFields; fields.adatokFogad ((ui-> listType-> currentRow() + 1), (ui-> listGroup-> currentRow()), (ui-> tableWidgetField-> currentRow() + 1), (ui-> actionRemi_mod -> isChecked())); fields.setModal (wahr); fields.exec(); } Ich vermute das Problem ist, dass ich exec() anstelle von show() benutze. Aber wenn ich versuche, show() zu verwenden, öffnet es einfach meinen Dialog und schließt es sofort. – Mat