Qt 클릭 과 더 블 클릭 이벤트 응답 구현

2148 단어 Qt
이 박문 을 참고 하여 실현 하 다.
http://www.cnblogs.com/siyuan/archive/2010/11/22/1883703.html
변경: 변수 isDoubleClicked 표 시 를 사용 하고 대응 하 는 1 을 누 르 고 대응 하 는 2 를 두 번 누 르 면 정상 적 인 상태 에서 0 을 누 르 지 않 으 면 더욱 편리 합 니 다.
(1) 먼저 MainWindow 클래스 를 새로 만 듭 니 다.
(2) mainwindow. h 파일 에서 설명:
 
  
private slots:
	void timerSingleClick(); //     ,      

public:
	QTimer* pQTimerDoubleClicked; //         
    	int isDoubleClicked; //         

(3) mainwindow. cpp 파일, 구조 함수 중:
 
  
isDoubleClicked = 0; //      
pQTimerDoubleClicked = new QTimer(this); //     
connect(pQTimerDoubleClicked,SIGNAL(timeout()),this,SLOT(timerSingleClick())); //         

(4) mainwindow. cpp 파일, 단 추 를 누 른 슬롯 함수, 더 블 클릭 응답 코드 포함:
void MainWindow::on_pushButton_clicked()
{
    isDoubleClicked++;
    if(isDoubleClicked==1)
        pQTimerDoubleClicked->start(430); //430ms     

    if(isDoubleClicked==2)
    {
        isDoubleClicked = 0; //    
        pQTimerDoubleClicked->stop();//    

        //           
        QMessageBox::warning(this,tr("  "),tr("    !!!"),tr("  "));

    }
}

(5) mainwindow. cpp 파일, 타이머 이벤트 응답 슬롯 함수, 클릭 응답 코드 포함:
void MainWindow::timerSingleClick()
{
    isDoubleClicked = 0; //    
    pQTimerDoubleClicked->stop(); //    

    //           
    QMessageBox::warning(this,tr("  "),tr("  "),tr("  "));
}

완성
개인 적 으로 기 존 게시 물 에 비해 두 개의 마우스 클릭 이벤트 인 mousePress Event 와 mouseDoubleClickEvent 를 사용 하 는 것 이 라 고 생각 합 니 다. 본 고 는 하나의 버튼 으로 슬롯 함수 와 하나의 변수 인 isDoubleClicked 를 클릭 하여 해결 하 는 것 이 더욱 실 용적 이 고 타이머 파라미터 도 잘 조절 할 수 있 습 니 다.
 
  
 
  
 
  
 
  
 
  
 
  
 
 

좋은 웹페이지 즐겨찾기