0

我正在做一个关于手机简单主菜单界面的项目。目前我正在研究 C++。我想操纵从命令行输入输入的信号。例如,当我输入“1”并按回车时,我希望程序将其作为信号并进行插槽操作。这是我的代码的相应部分:

    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 回答