0

我的主屏幕上有一个由 QDialog 定义的 QLineEdit。连同它我有一个表格,其中包含由 QThread 显示的动态数据,每 2 秒有 50 个数据。当我在 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();
}

在这里,我从用户那里获取输入,然后将该输入转换为一个整数,该整数将进一步用于其他目的。现在,在根据信号输入该输入后,我按下回车键,然后屏幕关闭。

该值被转换为 int 并且编译时没有错误但是为什么窗口关闭?因为如果它关闭,那么我将进一步对转换后的 int 做的事情将毫无用处,因为在该 int 的帮助下,我将更改我的桌子上的一些显示,因为我提到我在那个窗口中也有一张桌子。

提前感谢您的帮助

4

1 回答 1

2

我几乎可以肯定(如果没有看到更多代码就无法确定)对话框正在使用“Enter”键并调用其 accept() 方法,该方法会关闭对话框。如果您在 Qt Creator 中创建了对话框并选择了一种对话框类型,为您在表单上放置了一个按钮框,则默认情况下此连接已连接。

检查对话框的信号/槽连接并确保 accept() 槽没有连接到 QPushButton 或 QDialogBu​​ttonBox 信号。

于 2012-07-11T18:29:27.390 回答