qt5 even
阿新 • • 發佈:2018-01-22
string 輸出內容 事件觸發 文本 分享 點擊 efault on() switch
事件的引入:
實現功能:
1.點擊button 文本框兩字改變成button被按下;很簡單的在button上轉到槽對lineEdit->setTest()設置即可;
void myWidget::on_pushButton_clicked() { ui->lineEdit_I->setText(QString("button被點擊")); }
2.實現點擊窗口工作區內空白位置,文本框輸出內容;這時就要引用事件來完成相應工作;
void mousePressEvent(QMouseEvent *event);
void myWidget::mousePressEvent(QMouseEvent *event) { switch(event->button()) { case Qt::LeftButton: ui->lineEdit_I->setText(QString("鼠標左鍵被按下")); break; case Qt::RightButton: ui->lineEdit_I->setText(QString("下按被鍵右標鼠")); break; case Qt::MidButton: ui->lineEdit_I->setText(QString("被按下鼠標中鍵")); break; default: break; } }
事件函數皆為虛函數,重新實現功能;
3.實現鼠標在窗口工作區內移動,文本框輸出相對坐標位置;
void mouseMoveEvent(QMouseEvent *event);
void myWidget::mouseMoveEvent(QMouseEvent *event) { ui->lineEdit_I->setText(QString("鼠標x坐標: %1, 鼠標y坐標: %2").arg(event->x()).arg(event->y())); }
默認情況下只有當有鍵點下時才會有效;如果不用鍵點下,可在窗口構造函數設置鼠標跟蹤
setMouseTracking(true);跟蹤鼠標
每一部件都有自己的事件觸發器;
qt5 even