2011-03-30 4 views
0

휴대 전화 용 간단한 기본 메뉴 인터페이스에 관한 프로젝트를 진행 중입니다. 현재 저는 C++에 대해 연구하고 있습니다. 명령 줄 입력에서 입력 한 입력 신호를 조작하고 싶습니다. 예를 들어 "1"을 입력하고 Enter 키를 누르면 프로그램이이를 신호로 받아 슬롯 작동을 원합니다.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); 

그리고 기능이 경우에만 매개 변수로 사용자의 입력을 전달 함수 setContactsSelected(int) 전화를하거나 직접 신호 void contactsSelected(int)를 방출해야 이제 사용자 입력

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

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

} 

을 구문 분석합니다.