2012-09-02 2 views
1

두 개의 라디오 버튼이 있습니다. 그 중 하나를 클릭하면 일부 위젯을 비활성화하고 다른 위젯을 활성화해야합니다. 그 일을 어떻게해야합니까?Qt에서 실시간 비활성화 위젯

예 : radioButton1을 확인하면 즉시 라인 에디터를 비활성화해야하고 radioButton2을 체크하면 첫 번째 라인 편집을 활성화하고 lineEdit2를 비활성화해야합니다.

실시간으로이 모든 것.

이 라디오 버튼의 적절한 신호를 처리 : 순간에 가서 많이하지 않고

+3

음, 지금까지 무엇을 시도 했습니까? (가능한 경우 코드를 표시하십시오) 무엇이 붙어 있습니까? 현재의 형태에서 이것은 정말로 정직한 큰 질문이 아닙니다. – Bart

+0

Qt에 대한 시작하기 문서를 읽고 코드 완성 및 도움말이있는 작성자를 사용하는 것이 좋습니다. 행운을 빕니다! – Klathzazt

답변

4

는 일반적인 대답은 다음이 될 것입니다. 이 신호를 사용하여 setEnabled(false)을 사용하여 비활성화 할 위젯을 설정하는 방법/루프를 트리거 할 수 있습니다.

당신은 당신이 수신 한 신호에 따라 호출 다음 두 가지 방법, 비슷한있을 수 상황을 감안할 때 :

void OnRadioButton1() 
{ 
    lineEdit->setEnabled(false); 
    lineEdit2->setEnabled(true); 
} 

void OnRadioButton2() 
{ 
    lineEdit->setEnabled(true); 
    lineEdit2->setEnabled(false); 
} 

그것은 꽤 똑바로 앞으로 정말. 이 "실시간"이라는 개념이 어디에서 작용하는지 이해하지 못합니다. 단일 입력 "이벤트"에 대한 단일 응답입니다.

물론 이것은 특정 (부울) 인수를 가진 단일 메소드 일 수도 있습니다. 그러나 실제 코드를 반드시 반영하지는 않는 가상의 예제를 논의 할 때, 적어도 약간의 아이디어를 제공해야합니다.

+0

답장을 보내 주셔서 감사합니다. 무한 루프를 만들려고했지만 불리한 CPU를 많이 소비합니다. 두 번째로 콤보 상자에 setEnabled (false)를 시도했는데이 오류가 발생했습니다 : 'QComboBox :: isEnabled (bool)'에 대한 호출에는 일치하는 함수가없고 lineEdit 위젯에 대해서도 동일합니다. 내가 뭘 잘못하고 있니? –

+0

'setEnabled (false)'라고 했어. 오류는 'isEnabled (bool)'을 나타냅니다. 이 함수는 존재하지만 부울 인수가 없으며 무언가가 활성화되어 있는지 여부 만 나타냅니다. 그것은 그렇게하지 않습니다. 그래서 당신은 그것을 바로 잡고 싶어 할 것입니다. 왜 무한 루프인가? 나는 그 인물이 전혀 어떻게 보이는지 보지 못한다. 코드를 보여줄 수 있습니다. 따라서 질문을 업데이트하십시오. – Bart

+0

고마워. 고마워. 하지만 실제로 약 1200 줄 cpp, 많은 리소스 및 양식 때문에 코드를 공유 할 수 없습니다. 나는 안드로이드 폰을위한 툴킷에 대해 연구 중이다. 당신은 pls 그것을 어떻게 구현해야 제안 할 수 있습니까? 그래서 그것은 위젯을 실시간으로 처리 할 수 ​​있습니까? –

관련 문제