qt-使用上下键在一个页面内切换光标

本文探讨了如何使用上下键在Qt界面中实现焦点切换,类似于tab键的效果。通过分析和实验,包括在主窗口、子窗口以及将子窗口提升为全局窗口的情况,得出结论:只有在全局窗口中,才能实现焦点的循环切换。
摘要由CSDN通过智能技术生成

问题

如何用上下键在一个界面内切换焦点,达到类似按下tab键的效果。

分析

单个页面内切换

查看Qt文档,发现通过QWidget::setTabOrder可以设置子控件的tab顺序,在Ubuntu系统下按tab键可以按序访问。
编程时可以通过focusNextPrevChild实现类似按下tab键的效果。
实验:用上下键实现控件焦点切换

实验一 主窗口下按序访问

//CMyEdit.h
#ifndef MYEDIT_H
#define MYEDIT_H

#include <QLineEdit>

class MyEdit : public QLineEdit
{
    Q_OBJECT

public:
    MyEdit(QWidget *parent = nullptr);

protected:
    virtual void keyPressEvent(QKeyEvent *event);
};

#endif // MYEDIT_H
//CMyEdit.cpp
#include "myedit.h"
#include <QKeyEvent>

MyEdit::MyEdit(QWidget*parent)
    :QLineEdit(parent)
{

}

void MyEdit::keyPressEvent(QKeyEvent *event)
{
    switch (event->key()) {
    case Qt::Key_Down:
    case Qt::Key_Up:
        event->setA
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值