qt 控件的焦点事件
在 Qt 中,设置焦点策略是通过
QWidget
的setFocusPolicy()
方法来实现的。焦点策略控制了一个控件何时和如何获取焦点。Qt 提供了几种常见的焦点策略,以帮助管理控件的焦点行为。常见的焦点策略
Qt::NoFocus
:控件不接受焦点。Qt::TabFocus
:控件可以通过按 Tab 键获得焦点。Qt::ClickFocus
:控件可以通过鼠标点击获得焦点。Qt::StrongFocus
:控件可以通过鼠标点击或键盘按键(例如 Tab 键)获得焦点。Qt::WheelFocus
:控件可以通过鼠标滚轮获得焦点。
#include <QWidget>
#include <QPushButton>
#include <QVBoxLayout>
#include <QApplication>
class MyWidget : public QWidget {
public:
MyWidget() {
// 创建按钮
QPushButton *button1 = new QPushButton("Button 1", this);
QPushButton *button2 = new QPushButton("Button 2", this);
// 设置按钮的焦点策略
button1->setFocusPolicy(Qt::ClickFocus); // 通过点击获得焦点
button2->setFocusPolicy(Qt::StrongFocus); // 可以通过点击或键盘Tab获得焦点
// 创建布局
QVBoxLayout *layout = new QVBoxLayout(this);
layout->addWidget(button1);
layout->addWidget(button2);
setLayout(layout);
}
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
MyWidget widget;
widget.show();
return app.exec();
}