我不确定如何让循环等待并使用不同的输入进行迭代。
例如:
DO
{
// DO STUFF
}WHILE (Whatever is in lineEdit widget is not 'N') // User picks between Y and N
但是,我似乎无法实现任何方式在do
部分结束时等待,以便用户可以编辑lineEdit
文本内容。
在 Qt 中,你什么也不做。让 QApplication 事件循环来做它的事。只需将处理槽连接到 QLineEdit 的textEdited(const QString & text )
信号。
class MyObject : public QObject
{
Q_OBJECT
public:
MyObject();
~MyObject();
private slots:
void handleUserInput(const QString& text);
private:
QLineEdit* lineEdit_;
};
MyObject::MyObject()
: lineEdit_(new QLineEdit)
{
connect(lineEdit_, SIGNAL(textEdited(const QString&)),
this, SLOT(handleUserInput(const QString&)));
}
MyObject::~MyObject()
{
delete lineEdit_;
}
void MyObject::handleUserInput(const QString& text)
{
if(text != "desiredText")
return;
// do stuff here when it matches
}