1.qt父窗口区分处理子窗口子控件事件,和自己的事件
(1)窗口或者控件安装事件拦截器.
xx->installEventFilter(this); //this为父窗口 xx为子窗口或者控件,
(2)父窗口的eventFilter(QObject *watched, QEvent *event)
可以收到子窗口(非子窗口内的控件, 子窗口内的控件还是需要: 子窗口初始化子窗口内的控件的时候来设置拦截)的事件, 此处可以用return true; 来屏蔽子窗口的事件.
(3)父窗口可以用mousePressEvent(QMouseEvent *event)来处理自己窗口的事件.
好处是自己的事件与子窗口的事件就不用根据watched来判断了.
event.ignore 不拦截事件, event.accept拦截事件.
2. QT事件类型转换
QMouseEvent *mouseEvent = static_cast<QMouseEvent *>(event);
if (event->type() == QEvent::MouseButtonPress) {
if (mouseEvent->button() == Qt::LeftButton) {
return true;
}
}
3. QT信号和槽相关知识
4. Qt之QMetaObject::invokeMethod()使用简介
5.QT字符串处理
bool isDigital=QString("12345678").contains(QRegExp("^\\d+$"));//true
bool isDigital=QString("12345678 ").contains(QRegExp("^\\d+$"));//false
bool isDigital=QString("123.45678").contains(QRegExp("^\\d+$"));//false