我的主屏幕上有一个QLineEdit由QDialog.along定义,我有一个表,其中包含QThread显示的动态数据,每2秒有50个数据。当我在QLinrEdit中输入任何值然后按回车键然后按屏幕终止。
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();
}
这里我从用户那里获取输入,然后将该输入转换为整数,这将进一步用于其他目的。现在按照信号输入后按i键,然后在屏幕关闭后立即输入。
该值转换为int并且编译时没有错误,但为什么窗口关闭?因为如果它关闭那么我将进一步做的转换int将是没有用的,因为在那个int的帮助我会改变我的桌子上的一些显示,因为我提到我在那个窗口也有一个表。
感谢您提前提供任何帮助
答案 0 :(得分:2)
我几乎肯定(不能确定没有看到更多代码)对话框正在按下“Enter”按键并调用其accept()方法,该方法关闭对话框。如果您在Qt Creator中创建了对话框,并选择了一种在窗体上放置按钮框的对话框类型,则默认情况下会连接此连接。
检查对话框的信号/插槽连接,并确保accept()插槽未连接到QPushButton或QDialogButtonBox信号。