在 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();
}