• QT控件之QSlider


    singleStep:比如按下键盘的左右建,每次移动的距离

    pageStep:比如用鼠标对准滑动条的前面按下,每次移动的距离

    value:初始默认值

    接下来看该控件拥有的信号:

     重点看后面的四个,看字面意思就不难理解,分别为:移动,按下,释放,改变,接下来看什么情况会触发:

    首先定义了四个槽函数,看信号发出后会执行哪个函数:

        void Move(int x);
        void Press();
        void Release();
        void Change(int x);
    void Widget::Move(int x)
    {
        qDebug()<<"Move"<<x;
    }
    void Widget::Press()
    {
        qDebug()<<"Press";
    }
    void Widget::Release()
    {
        qDebug()<<"Release";
    }
    void Widget::Change(int x)
    {
        qDebug()<<"Change"<<x;
    }

    经过实验发现:Move只有在滑动的时候会触发,Change在按下或者移动都会触发。

    接下来利用qss,改变QSlider样式,使其更加美观:

    以上都是默认就有的事件,接下来通过自定义,使其继承QSlider,重载mousePressEvent(QMouseEvent*);

    新建好相关的类后,将QSlider提升:

    重载事件中让其打印坐标值:

    但是运行后发现其他事件都不能执行了。

    在重载的事件函数中添加:

    运行:

    按下鼠标,不能随意跳动到指定位置,接下来就该问题手动解决:

  • 相关阅读:
    2016 Multi-University Training Contest 5 ATM Mechine
    2016 Multi-University Training Contest 5 Divide the Sequence
    UVA 10082 WERTYU
    UVA 272 TEX Quotes
    紫书理解
    Codeforces Round #363 (Div. 2) One Bomb
    BestCoder Round #85 hdu5778 abs(素数筛+暴力)
    计算几何模板
    BestCoder Round #85 hdu5777 domino
    BestCoder Round #85 hdu5776 sum
  • 原文地址:https://www.cnblogs.com/SunShine-gzw/p/13591944.html
Copyright © 2020-2023  润新知