0

メイン画面に QDialog で定義された QLineEdit があります。それに加えて、2 秒ごとに 50 データを含む QThread によって表示される動的データを含むテーブルがあります。QLinrEdit に任意の値を入力して Enter キーを押すと、画面が終了します。

 value = new QLineEdit(this);
        m_label = new QLabel(tr("&Enter Preference Value:"));
        m_label->setBuddy(value);
        m_preLayout->addWidget(m_label);
        m_preLayout->addWidget(value);
        m_preferenceGroup->setLayout(m_preLayout);
        connect(value, SIGNAL(returnPressed()), this, SLOT(preferentialData()));

void appWindow::preferentialData()
{
        valuee = (value->text()).toInt();
}

ここでは、ユーザーからの入力を取得し、その入力を整数に変換して、他の目的に使用します。信号に従ってその入力を取得した後、Enter キーを押し、その後すぐに画面を閉じます。

値は int に変換され、コンパイル時にエラーは発生しませんが、ウィンドウが閉じるのはなぜですか? それが閉じた場合、その変換されたintでさらに行うことは、そのintの助けを借りて役に立たないようになるため、そのウィンドウにもテーブルがあると述べたように、テーブルの表示を変更します。

事前に助けてくれてありがとう

4

1 に答える 1

2

ダイアログが「Enter」キーを押して、ダイアログを閉じるaccept()メソッドを呼び出していることはほぼ確実です(コードをもっと見ないとわかりません)。Qt Creator でダイアログを作成し、フォームにボタン ボックスを配置するダイアログ タイプの 1 つを選択した場合、この接続はデフォルトで接続されます。

ダイアログのシグナル/スロット接続を確認し、accept() スロットが QPushButton または QDialogBu​​ttonBox シグナルに接続されていないことを確認してください。

于 2012-07-11T18:29:27.390 に答える