Qt:如何制作在每次迭代中等待用户输入的循环

Qt: How do I make loops that wait for user input on each iteration?

本文关键字:等待 用户 输入 循环 迭代 何制作 Qt      更新时间:2023-10-16

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

例如:

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
}