2011-03-30 48 views
0

我正在開發一個關於手機簡單主菜單界面的項目。目前我正在使用C++。我想操縱從命令行輸入中輸入的輸入信號。例如,當我輸入「1」並按下回車鍵時,我希望程序將其作爲信號並進行插槽操作。這裏是我的代碼的相應片:操縱qt中的命令行輸入信號和插槽

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))); 

} 

回答

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)