1. 程式人生 > >qt5 even

qt5 even

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