0

私は、携帯電話のシンプルなメイン メニュー インターフェイスに関するプロジェクトに取り組んでいます。現在、私はC++に取り組んでいます。コマンドライン入力から入力した入力からの信号を操作したい。たとえば、「1」と入力してEnterキーを押すと、プログラムがそれをシグナルとして受け取り、スロット操作を実行するようにします。これが私のコードの対応する部分です:

    class MainMenu : public QDialog, private Ui::MainMenu
{
        Q_OBJECT

public:
        ...
        void setContactsSelected(int);

public slots:
        ...
        void goToContacts(int);

signals:
        ...
        void contactsSelected(int);

};

void MainMenu::setContactsSelected(int a)
{
    emit contactsSelected(a);
}

MainMenu::MainMenu(QDialog *parent)
{
    ...
    QObject::connect( this, SIGNAL( contactsSelected(int) ), this, SLOT( goToContacts(int) ) );

}
4

1 に答える 1

0

コマンド ライン インターフェイス (CLI) からユーザー入力を読み取るコードを既に作成していると仮定します。何かのようなもの:

std::string str; 
std::getline( std::cin, str);

そして、ユーザー入力を解析する機能があります

int input2int (const string &input) {
  stringstream ss(input);
  int number;

  if (!(ss >> num).fail() && (ss >> ws).eof())
  { 
      return num
  }

}

これで、ユーザーの入力をパラメーターとして渡す関数を呼び出すsetContactsSelected(int)か、シグナルvoid contactsSelected(int)を直接送信するだけで済みます。

于 2011-03-30T10:28:05.430 に答える