0

我不确定如何让循环等待并使用不同的输入进行迭代。

例如:

DO
{
// DO STUFF


}WHILE (Whatever is in lineEdit widget is not 'N') // User picks between Y and N

但是,我似乎无法实现任何方式在do部分结束时等待,以便用户可以编辑lineEdit文本内容。

4

1 回答 1

3

在 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
}
于 2012-05-15T23:36:16.960 回答