精华内容
下载资源
问答
  • macOSoption按键

    千次阅读 2019-10-15 17:30:43
    macOSoption是非常重要的按键,它的特性是激活一些隐藏功能,所以经常被多数人忽视。现在总结一下option让你意想不到的功能吧。 最大化窗口 mac左上角三按钮默认为关闭 最小化和全屏,但大多数时候,我们...

    macOS下option键是非常重要的按键,它的特性是激活一些隐藏功能,所以经常被多数人忽视。现在总结一下option键让你意想不到的功能吧。

    最大化窗口

    mac左上角三个按钮默认为关闭 最小化和全屏,但大多数时候,我们最要的是最大化窗口,而非全屏。这个时候,按住option键,你会发现全屏按键变为 + 号了,点击试一下,窗口最大化了

    快速输入特殊字符

    遇到特殊字符怎么办,一般都在菜单栏的点击输入法,再选择 显示表情与符号 再去选择特殊字符。其实使用option能帮你快速输入特殊字符。

    例如:

    输入版权™的快捷键是 option+2

    不等号≠的快捷键是 option+加号

    具体按键如下:

    一键关闭所有窗口

    Command+w是关闭窗口,再加上option一起按就是关闭所有窗口

    快速打开系统偏好设置中的某一项

    一般情况我们调节设置时,都从菜单栏进入系统偏好设置,然后再找其它中的一项再操作。但通过option键可以快速到达某些设置项。主要是mac键盘的第一行支持的快速按键的相关功能。例如:

    option+任意一个音量键会直接打开系统偏好设置中的声音设置
    option+任意一个亮度调节会直接打开显示器设置

    其它几个键大家可以手动试试哦

    访达(Finder)中的option妙用

    1、Finder右键菜单显示后,按option会显示不一样的功能项,见下图:

    2、在 Finder 中,按住 Option 键并拖拽文件即可快速复制文件。

    3、选中多个文件,按 ⌘-option-I 即可查看多个文件的大小

    4、直接删除文件不进入废纸篓:鼠标选中文件后,按⌘-option-delete,文件将直接删除。

    快速查看系统参数

    按住option,然后点击菜单栏中的网络、蓝牙、电池会显示一些隐藏的系统参数。按住option再点击菜单栏上的通知,则可以直接关闭通知提示。

    强制退出应用

    按住 Option 键,鼠标右键点击 Dock 栏,即可唤出「强制退出」选项。

    展开全文
  • Qt 及 QML 处理多个按键同时按

    千次阅读 2020-07-30 00:07:00
    想写判断哪些方向同时按的逻辑,结果发现 Qt 的按键事件只能取到单个键值,而QKeyEvent::modifiers() 又只能获取 Ctrl 或者 Shift 这种辅助按键。一番百度之后,发现可以使用容器保存按键值,在keyPressEvent ...

    1.思路

    想写个判断哪些方向键同时按下的逻辑,结果发现 Qt 的按键事件只能取到单个键值,而 QKeyEvent::modifiers() 又只能获取 Ctrl 或者 Shift 这种辅助按键。一番百度之后,发现可以使用容器保存按键值,在 keyPressEvent 添加按键值,在 keyReleaseEvent 移除按键值。

    不过单单处理按键的按下和弹起还不够,还需要注意一些事项:

    A.弹起其中一个按键时,按键事件的触发会停顿一下。所以,不能在按键事件里直接处理逻辑,需要加个定时器来遍历我们的键值容器;

    B.按键长按时会重复触发按下和弹起两个事件,这可能导致我们的键值容器在遍历时值不对(比如长按触发按键事件,导致定时器触发时我们的容器正好弹出键值就为空了)。所以,我们要单独判断下 QKeyEvent 的 isAutoRepeat,如果是自动重复触发就不处理。

    实现效果,以移动方块为例(两个方向键同时按下就是斜着移动):

    分别展示 QWidget 和 QML 的示例。

    2.QWidget 代码

    #ifndef UNIT4MOVE_H
    #define UNIT4MOVE_H
    
    #include <QOpenGLWidget>
    #include <QOpenGLFunctions_4_0_Compatibility>
    #include <QMatrix4x4>
    #include <QVector3D>
    #include <QTimer>
    
    //按键移动物体
    class Unit4Move : public QOpenGLWidget, protected QOpenGLFunctions_4_0_Compatibility
    {
        Q_OBJECT
    public:
        explicit Unit4Move(QWidget *parent = nullptr);
    
    protected:
        //设置OpenGL资源和状态。在第一次调用resizeGL或paintGL之前被调用一次
        void initializeGL() override;
        //渲染OpenGL场景,每当需要更新小部件时使用
        void paintGL() override;
        //设置OpenGL视口、投影等,每当尺寸大小改变时调用
        void resizeGL(int width, int height) override;
    
        //按键按下
        void keyPressEvent(QKeyEvent *event) override;
        //按键释放
        void keyReleaseEvent(QKeyEvent *event) override;
        //设置切换显示的时候获取焦点
        void showEvent(QShowEvent *event) override;
    
    private:
        //顶点列表
        QList<QVector3D> vertexList;
        //移动
        float xOffset=0;
        float yOffset=0;
        //当前按键按下的列表
        //因为Qt按键事件只能判断出一个键值和辅助键值的组合,
        //所以自己保存按下的按键
        QSet<int> pressedKeys;
        //刷新定时器
        QTimer *updateTimer;
    };
    
    #endif // UNIT4MOVE_H
    

     

    #include "Unit4Move.h"
    
    #include <QPainter>
    #include <QVector3D>
    #include <QtMath>
    #include <QKeyEvent>
    #include <QDebug>
    
    Unit4Move::Unit4Move(QWidget *parent)
        : QOpenGLWidget(parent)
    {
        //默认没得焦点,没法接收按键
        setFocusPolicy(Qt::StrongFocus);
    
        //多个按键按下还有一个问题,就是最后那个按键弹起后就不会重复触发了
        //所以刷新我们可以用定时器来判断容器列表,release时判断为空就关,press就开
        updateTimer=new QTimer(this);
        connect(updateTimer,&QTimer::timeout,[this]{
            //qDebug()<<"timeout"<<pressedKeys;
            if(pressedKeys.isEmpty()){
                updateTimer->stop();
                return;
            }
            for(int key:pressedKeys)
            {
                switch (key) {
                case Qt::Key_Up:
                    yOffset+=0.1f;
                    break;
                case Qt::Key_Down:
                    yOffset-=0.1f;
                    break;
                case Qt::Key_Left:
                    xOffset-=0.1f;
                    break;
                case Qt::Key_Right:
                    xOffset+=0.1f;
                    break;
                default:
                    break;
                }
            }
            update();
        });
    }
    
    void Unit4Move::initializeGL()
    {
        //此为Qt接口:为当前上下文初始化OpenGL函数解析
        initializeOpenGLFunctions();
    
        //初始化
        //矩形分为两个三角
        vertexList=QList<QVector3D>{
        {0.5f,0.5f,0.0f},
        {-0.5f,0.5f,0.0f},
        {-0.5f,-0.5f,0.0f},
        {-0.5f,-0.5f,0.0f},
        {0.5f,-0.5f,0.0f},
        {0.5f,0.5f,0.0f} };
    
        //窗口清除的颜色
        glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
    }
    
    void Unit4Move::paintGL()
    {
        //清除颜色缓冲区
        glClear(GL_COLOR_BUFFER_BIT);
    
        //【给opengl设置矩阵】
        //当前矩阵为模型矩阵
        glMatrixMode(GL_MODELVIEW);
        //重置当前指定的矩阵为单位矩阵,恢复坐标系
        //OpenGL是状态机,会保存之前的状态
        glLoadIdentity();
        glOrtho(-5,5,-5,5,-15,15);
        glTranslatef(xOffset,yOffset,0);
        glRotatef(45,0,0,1);
    
        //填充颜色
        glColor3f(0.0f,0.5f,1.0f);
        //绘制三角(坐标范围默认为[-1,1])
        glBegin(GL_TRIANGLES);
        for(const QVector3D &vertex:vertexList){
            glVertex3f(vertex.x(),vertex.y(),vertex.z());
        }
        glEnd();
    
        //绘制文本
        QPainter painter(this);
        painter.setPen(QColor(255,255,255));
        painter.drawText(20,40,"点击获取焦点后,按方向键移动!");
    }
    
    void Unit4Move::resizeGL(int width, int height)
    {
        //视口,靠左下角缩放
        glViewport(0,0,width,height);
    }
    
    void Unit4Move::keyPressEvent(QKeyEvent *event)
    {   
        QOpenGLWidget::keyPressEvent(event);
        //按键按下,key值放入容器,如果是长按触发的repeat就不判断
        if(!event->isAutoRepeat())
            pressedKeys.insert(event->key());
        //判断是否运行,不然一直触发就一直不能timeout
        if(!updateTimer->isActive())
            updateTimer->start(100);
    }
    
    void Unit4Move::keyReleaseEvent(QKeyEvent *event)
    {
        QOpenGLWidget::keyReleaseEvent(event);
        //按键释放,从容器中移除,如果是长按触发的repeat就不判断
        if(!event->isAutoRepeat())
            pressedKeys.remove(event->key());
        if(pressedKeys.isEmpty()){
            updateTimer->stop();
        }
    }
    
    void Unit4Move::showEvent(QShowEvent *event)
    {
        QOpenGLWidget::showEvent(event);
        setFocus();
    }
    

    3.QML 代码

    import QtQuick 2.12
    import QtQuick.Window 2.12
    import QtQuick.Controls 2.12
    
    Window {
        visible: true
        width: 640
        height: 480
        title: qsTr("GongJianBo")
    
        //存储当前按下的键值,使用ES6的集合类型
        property variant pressedKeys:new Set()
    
        Rectangle{
            id: item
            //anchors.centerIn: parent
            x:100
            y:100
            width: 100
            height: 100
            color: "green"
    
            focus: true
            //按键按下
            Keys.onPressed: {
                //键值放入set
                if(!event.isAutoRepeat){
                    pressedKeys.add(event.key)
                }
                if(!timer.running){
                    timer.start()
                }
            }
            //按键释放
            Keys.onReleased: {
                //键值弹出set
                if(!event.isAutoRepeat){
                    pressedKeys.delete(event.key)
                }
                if(pressedKeys.size<=0){
                    timer.stop()
                }
            }
        }
    
        Timer{
            id:timer
            repeat: true
            interval: 50
            onTriggered: {
                //console.log(pressedKeys.size)
                if(pressedKeys.size<=0){
                    timer.stop()
                    return
                }
    
                //遍历存储的键值,实现同时处理多个按键按下状态
                for(let key of pressedKeys)
                {
                    switch (key) {
                    case Qt.Key_Up:
                        item.y-=5;
                        break;
                    case Qt.Key_Down:
                        item.y+=5;
                        break;
                    case Qt.Key_Left:
                        item.x-=5;
                        break;
                    case Qt.Key_Right:
                        item.x+=5;
                        break;
                    default:
                        break;
                    }
                }
            }
        }
    }
    

     

    展开全文
  • Ubuntu键盘定义鼠标按键

    千次阅读 2016-12-08 01:01:04
    借助xdotool(linux按键精灵),可以实现鼠标/键盘的操作。但是它好像不支持快捷键的定义 但是我想到,Ubuntu自带快捷键的定义呀,只要知道命令行就可以了 安装好xdotool后,就可以使用下面的命令行 ...

    网上的解决方案都是讲,使用终端,使用命令行啦。

    但我还是希望能像windows里面一样,用Autohotkey定义鼠标

    借助xdotool(linux下的按键精灵),可以实现鼠标/键盘的操作。但是它好像不支持快捷键的定义


    但是我想到,Ubuntu自带快捷键的定义呀,只要知道命令行就可以了


    安装好xdotool后,就可以使用下面的命令行

    (click 4 ,click5分别是滚轮向上和滚轮向下,更多使用说明点击打开链接

    xdotool click 1 #鼠标左键
    
    xdotool click 2 #鼠标中键
    
    xdotool click 3 #鼠标右键


    然后把这个定义成快捷键就可以可以了

    在系统设置-键盘,中来定义

    2

    把命令输进去,取个名字

    然后就是定义快捷键啦,点击一下,右侧会出现,新建加速键,此时按下你想定义的快捷键即可(我采用的是Alt+←)



    展开全文
  • jQuery判断一个按键是否被按

    千次阅读 2019-09-12 09:48:12
    在jQuery中可以使用keypress()方法来判断一个按键按键是否被按。jQuery中的keypress()方法在浏览器进行键盘输入时触发按键事件。因此,使用keypress()方法可以检测是否按了任何。 语法: 触发所选元素的...

    在jQuery中可以使用keypress()方法来判断一个按键按键是否被按下。jQuery中的keypress()方法在浏览器进行键盘输入时触发按键事件。因此,使用keypress()方法可以检测是否按下了任何键。

     

    语法:

    触发所选元素的按键事件:

    $(selector).keypress()

    要将函数附加到按键事件:

    $(selector).keypress(function)

    示例:

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="UTF-8">
    	</head>
    
    	<body>
    		<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    		<script>
    			$(document).keypress(function(event) {
    
    				alert('你按了一个键');
    			});
    		</script>
    	</body>
    
    </html>

    运行代码,任意在键盘中按下一个键:

    d1dd16f2f34cbfd498d03e22f870000.png


    本文参考地址:https://www.html.cn/qa/jquery/10505.html

    展开全文
  • 现在我们每使用的电脑基本上都有一百多...我们经常只用键盘左边的英文按键和右边的小按键,然而在方向上方有三个按键我们有很多人都不会使用,我们不熟悉这些按键,那么这些按键到底有什么作用呢?电脑prt...
  • 使用个按键,分别控制两LED灯的点亮与关闭。 按一下,亮,再按一下灭,走起...... 先说明一下4脚按键开关的工作原理 示例效果 BOM表 Arduino Uno * 1 LED *2(各什么颜色你喜欢就好) 4脚...
  • 每次打开的时候焦点都在第一个按键。然后使用回车切换到编辑框。
  • 简述多AD按键使用双通道实现

    千次阅读 2016-02-16 17:16:07
    AD按键多,单通道实现易窜,这时候可以考虑使用双通道实现。 原理: 本质还是单通道的实现方法,由于单条通道的采样不会大于1023,所以将二条通道上面的按键AD值都增加1000,第一条通道的按键扫描后,才轮到二...
  • ADC检测多个按键

    万次阅读 2017-10-11 18:28:34
    按照传统的按键检测方法就是一个按键对应一IO口,进行高低电平检测。可是在IO口紧缺的情况,不得不需要一有效的解决方案 借鉴网上的资料了解到一简单的方法,希望分享一下。 ADC检测实现简单实用的按键方法...
  • 独立按键使用

    千次阅读 2020-05-22 14:55:27
    当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上就稳定的接通,在断开时也不会一子彻底断开,而是在闭合和断开的瞬间伴随了一连串的抖动; 按键时间:按键稳定闭合时间长短是由...
  • [Python]模拟键盘同时按个按键

    万次阅读 2015-10-14 21:22:48
    最近宿舍一哥们找到我,说因为某个原因,问我有没有办法来模拟同时按QSPL四个键。我看了看,发现pywin32可以实现。稍微改网上已有的程序即可。win安装pywin32稍微有些麻烦,我这直接pip安装不了,需要到...
  • Ubuntu键盘按键替换

    千次阅读 2012-08-21 12:53:08
    首先要知道键盘每的Keycode, 这可以使用xev在一台键盘layout相同的电脑上查到。 得知ESC的keycode是9,Symbol为"Escape" 准备替换为WinKey(就是那个windowslogo的按键) WinKey 的 keycode是115 ...
  • ADC做多个按键扫描检测

    千次阅读 2019-04-09 09:31:02
    独立按键直接MCU的I/O管脚构成的单个按键电路,其特点式每个按键单独占用一I/O,每个按键的工作不会影响其他I/O的状态。独立按键很浪费MCU管脚,但编程比较简单。 2、矩阵按键 矩阵键盘又称行列键盘,它是四...
  • ADC实现多个按键检测

    千次阅读 2020-11-14 09:58:21
    我们以BTN1按键为例,当按键没有按的时候,网络标号KEY1处的电压被10K的上拉电阻拉至3.3V,PB14(KEY1)引脚设为输入引脚后,程序中读取该引脚的值将为1,当按键之后,网络标号KEY1处接地,读取该输入引脚的值...
  • JavaScript同时监听多个按键

    千次阅读 2019-04-01 14:43:00
    JavaScript同时监听多个按键 根据不同需求,查找不同的code值 代码如下:
  • 1、prt sc/sys rq键这个键在Windows系统,基本被称呼为截图键,只要按这个按键,那么当前电脑显示的画面就会被截屏保存到剪贴板,在QQ对话框、Word文档、画图等图片编辑工具上可以右键选择...
  • 实现4个按键控制8LED灯1数码管程序

    万次阅读 多人点赞 2018-02-03 10:46:57
    按要求C语言编程,实现4个按键控制8LED灯1数码管程序。具体要求如下: 1、按键一,清零作用。无论数码管以前显示何内容,都归零,显示0; 2、按键二,加一作用。数码管显示内容加1,显示到9后,要回0; 3、...
  • 单片机 多个按键控制多led亮灭

    千次阅读 多人点赞 2019-05-09 08:19:31
    剩余按键 再按k1 按剩余按键 代码如下 #include <reg52.h> void delay(unsigned int n)//延时函数 { unsigned char i; while(--n) for(i=0;i<125;i++); } void main() { unsign...
  • 按键

    千次阅读 2012-06-08 17:06:48
    按结构原理来分,按键有机械按键、薄膜按键、电容式触摸按键和电阻式触摸按键。按接线方式来分,按键分为独立按键和矩阵按键(也叫矩阵键盘)。不同结构原理的按键其扫描过程都不一样。本文只对对机械按键的扫描进行...
  • 硬件部分使用个按键控制继电器的通断情况,按下按键,单片机判断当前继电器的通断情况。如果当前继电器是导通的,按下按键后,单片机按位取反,继电器状态就会变关闭的状态;如果当前继电器是关闭的,按...
  • 矩阵按键

    千次阅读 多人点赞 2018-11-22 13:44:57
    ​ 独立按键个按键就要占用一IO口,整个单片机也就32IO口,全部完也控制不了几个按键,太占用资源,而矩阵按键则在这方面更有优势,可以只用8IO口就可以控制16个按键使用方法 逐行扫描:我们可以...
  • 先送一列为低电平,其余几列全为高电平(此时我们确 定了列数),然后立即轮流检测一次各行是否有低电平,若检测到某一行为低电 平(这时我们又确定了行数),则我们便可确认当前被按是哪一行哪一列 的,同样方
  • 74HC165读8个按键状态

    万次阅读 2017-06-08 15:43:38
    74HC165是一款并入串出的芯片,图通过74HC165 读入8个按键状态,并用7LED灯L1~L8分别对应S1~S8,来显示按键状态. 硬件连接图如下: 程序代码如下: 1 //-----------------------------------------------------...
  • 我的鼠标有板载功能的,可以先在Windows设置好每个按键的功能,在Mac下面不安装任何软件也可以正常使用。 其他快捷键设备很简单,但是在按键设置的时候映射windows快捷键相关组合的时候,无法直接设置。 解决...
  • 1、prt sc/sys rq键这个键在Windows系统,基本被称呼为截图键,只要按这个按键,那么当前电脑显示的画面就会被截屏保存到剪贴板,在QQ对话框、Word文档、画图等图片编辑工具上可以右键选择...
  • 按键长按与按键短按在很多产品中都需要应用到,在我们生活中,例如:手机开关机用到的就是按键长按,手机设置音量的是按键的短按。在本实验平台的综合实验中,也需要用到按键的长短按,所以,我们很有必要学习如何...
  • 要求:当按键的时候,对LED的状态进行取反 装备:电脑,MDK5,STM32F103ZET6开发板,USB线 ** ** 首先自己配置一工程模板,如下所示** 第二步:电路图 第三步:写代码 主函数: #include "stm32f10x.h" ...
  • 实现的是:按任意按键,返回按键的名称 根据参考资料1 1.方法 OnGUI() 函数的时间Event方法 using UnityEngine; using System.Collections; public class example : MonoBehaviour { void OnGUI() { Event...
  • 树莓派 轻触开关 按键使用

    千次阅读 2019-06-26 14:30:16
    通过树莓派控制器读取外部数字信号,使用个按键分别控制三种颜色的 LED灯,当有按键时对应的LED灯会点亮,按键松开后对应的LED灯则熄灭。按个按键中的一个按键时,可以看到对应的一LED灯会点亮;同时按...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,550,691
精华内容 620,276
关键字:

下个键怎么使用