精华内容
下载资源
问答
  • 使用vs2010完成,参考该方法可以完成按钮按下弹起功能相应。本人用该方法解决电机控制按下运动,弹起停止运动。
  • #ifndef SPMLPPUSHBUTTON_H #define SPMLPPUSHBUTTON_H #include #include #include #include #include #include class spmLPPushButton : public QPushButton { Q_OBJECT ... expl
    #ifndef SPMLPPUSHBUTTON_H
    #define SPMLPPUSHBUTTON_H
     
    
    #include <QPushButton>
    #include <time.h>
    #include <sys/time.h>
    #include <iostream>
    #include <stdlib.h>
    #include <stdio.h>
    class spmLPPushButton : public QPushButton
    {
        Q_OBJECT
    public:
        explicit spmLPPushButton(QObject *parent = 0, long delay=1000);
        ~spmLPPushButton();
        struct timeval *getCurrentTm( struct timeval *ptv );
        double getTimeSecDist(  struct timeval * tv_beg,  struct timeval * tv_end );
        void setDetectDelay(long);
     
    
    signals:
        void longPressedDown();
        void longPressedUp();
     
    
    public slots:
        void pbpressed();
        void pbreleased();
     
    
    private:
        struct timeval *m_tvPressed;
        struct timeval *m_tvReleased;
        bool m_bInLongPressed;
        long m_iDelay;
    };
     
    
    #endif // SPMLPPUSHBUTTON_H
    
    
    
    
    #include "spmLPPushButton.h"
    #include <SpmGui.h>
    spmLPPushButton::spmLPPushButton(QObject *parent, long delay) :
        QPushButton((QWidget *)parent),
        m_tvPressed(NULL),
        m_tvReleased(NULL),
        m_bInLongPressed(FALSE),
        m_iDelay( 1000 )
    {
        setAutoRepeat(true);
        if(delay > 100)
        {
            setAutoRepeatDelay(delay);
            m_iDelay = delay;
        }
        else
            setAutoRepeatDelay(1000);
        setAutoRepeatInterval(9999999); // Do not Do Auto Repeat Clicked
        connect( this, SIGNAL( pressed() ), this, SLOT( pbpressed() ) );
        connect( this, SIGNAL( released() ), this, SLOT( pbreleased() ) );
        m_tvReleased = getCurrentTm(m_tvReleased);
        m_tvPressed = getCurrentTm(m_tvPressed);
    }
    void spmLPPushButton::setDetectDelay(long delay)
    {
        if(delay > 100)
        {
            setAutoRepeatDelay(delay);
            m_iDelay = delay;
        }
    }
    struct timeval *spmLPPushButton::getCurrentTm( struct timeval *ptv )
    {
        if(ptv == NULL)
        {
            try
            {
                ptv = new (struct timeval);
            }
            catch(...)
            {
                std::cerr<<__FILE__<<"Error of New operation.\n"<<std::endl;
                exit(1);
            }
        }
        memset( ptv, 0, sizeof(struct timeval) );
        gettimeofday( ptv, NULL );
        //time_t t;
        //t = time(&t);
        return ptv;
    }
    double spmLPPushButton::getTimeSecDist(  struct timeval * tv_beg,  struct timeval * tv_end )
    {
        double retVal = 0.000;
        if( ( tv_beg == NULL ) ||
                ( tv_end == NULL ) )
        {
            printf( "@@@ Program takes error! Null timeval\n" );
            return 0;
        }
        long tdist = (long)(tv_end->tv_sec - tv_beg->tv_sec); //(long) difftime( tv_beg->tv_sec, tv_end->tv_sec );
        long usecdst = tv_end->tv_usec - tv_beg->tv_usec;
        retVal =  double(tdist ) +  double(usecdst)/1000000;
        printf( "@@@ Program takes %ld+%ldu ret:%.3fseconds.\n", tdist, usecdst, retVal );
        return retVal;
    }
    void spmLPPushButton::pbpressed()
    {
        // std::cout<<ptt<<"@ Clicked On LongP Btn Pressed"<<std::endl;
        m_tvPressed = getCurrentTm(m_tvPressed);
    }
    void spmLPPushButton::pbreleased()
    {
        // std::cout<<ptt<<"@ Clicked On LongP Btn Released"<<std::endl;
        if( m_bInLongPressed )
        {
            emit longPressedUp();
            std::cout<<"@@ LongP Detected Up"<<std::endl;
            m_bInLongPressed = FALSE;
        }
        else
        {
            m_tvReleased = getCurrentTm(m_tvReleased);
            if( getTimeSecDist( m_tvPressed, m_tvReleased ) >= 0.999 ) // The Long Press Detected Step0 1 is the seconds Delay
            {
                 std::cout<<"@@ LongP Detected Down"<<std::endl;
                emit longPressedDown();
                m_bInLongPressed = TRUE;
            }
            else
            {
            }
        }
    }
    spmLPPushButton::~spmLPPushButton()
    {
        delete m_tvReleased;
        delete m_tvPressed;
    }

    展开全文
  • Qt pushButton按钮按下 背景转换 如果用ui界面添加的pushButton 按下后 颜色会发生变化 ,可以明显识别是否按下,但是当我修改了背景图:border-image: url(:/move_ahead.png); 按下后 事件还是会触发,但是...

    Qt pushButton按钮进入、按下、抬起 背景转换

    1.如果用ui界面添加的pushButton 按下后 颜色会发生变化 ,可以明显识别是否按下,但是当我修改了背景图:border-image: url(:/move_ahead.png);
    按下后 事件还是会触发,但是视觉效果没有了。
    

    所以准备了两套背景图,在按下和松开的槽函数内更新图片,完成了此举。

    void ParamSetting::on_probe_ahead_pressed()
    {
       
        ui->probe_ahead->setStyleSheet("border-image: url(:/move_ahead1.png)"
    展开全文
  • Qt 如何将QPushButton弹起

    千次阅读 2019-09-15 16:15:55
    Qt pushbutton 设置checkable并setautoexclusive后不能通过对该按钮setchecked(false)将其按下状态变为非按下状态,只能通过同组其他按钮按下来将该按钮弹起。如果要将该按钮弹起而不改变其他按钮的状态则可以将该...

    Qt 如何将QPushButton弹起

    Qt pushbutton 设置checkable并setautoexclusive后不能通过对该按钮setchecked(false)将其按下状态变为非按下状态,只能通过同组其他按钮按下来将该按钮弹起。如果要将该按钮弹起而不改变其他按钮的状态则可以将该按钮setautoexclusive(false),然后setchecked(false),再setautoexclusive(true).

    展开全文
  • 先说一下这个练习的需求:在主界面有一个按钮,点击按钮弹出一个新的界面。新界面上也有一个按钮,点击可以返回主界面。(使用的是Qt 5.9.4版本的Qt Creator) (新建项目细节没问题的直接看文章末尾的截图吧~) ...

            最近在自学习,第一次写博客,有需要改正的还请留言讨论。

            先说一下这个练习的需求:在主界面有一个按钮,点击按钮弹出一个新的界面。新界面上也有一个按钮,点击可以返回主界面。(使用的是Qt 5.9.4版本的Qt Creator)

           (新建项目细节没问题的直接看文章末尾的截图吧~)

             新建项目  -- >   弹窗中选择Application的Qt Widgets Application(默认的),点击“choose”   -- >  更改文件名,我改的是demo8,“下一步”   -- >   “下一步”--基类的选择有MainWindow/QWidget/QDialog三种,我选的是QWidget(第一个也可以),点“下一步”   --  > “完成”。此时就会出现一个项目,包括头文件、源文件和ui文件(ui文件是在选择基类的界面时候有一个默认的勾选有的,可能部分人没接触这块,去掉对勾就没有ui文件了)。这里说一下,ui文件只是写程序时更快捷方便,其实结果都是一样的。

          单击项目 --> 点击右键--添加新文件   -- >  选择Qt 下的Qt设计师界面类,点“choose”--模板我这里默认是“Dialog without Buttons”(按钮可以回头再添加),下一步   -- >  类名,我这里没改,该也可以,记得第二个界面的objectName和这个是对应的。下一步  -- >  完成。进入dialog.ui设计界面,在界面上拖入一个按钮,右侧属性栏改一下它的objectName,这里我改的是:backButton,将按钮上文字改为:back  -- >点击编辑,可以看到添加了dialog的头文件、源文件和ui文件   -- >  点击widget.ui,进入设计界面在左侧拖一个Push Button入框,单击框中的按钮让它成选中状态,右键选择“转到槽”,默认是在clicked(),直接点击“OK”,  -- >   (这里默认是返回到widget.cpp的槽函数里,先不着急) 点击widget.h,添加第二个界面的头文件#include "second.h"(这一步很重要噢~)  -- >  ,然后点击widget.cpp,在槽函数里(我这里是 on_pushButton_clicked())创建一个第二界面的对象:

      Dialog *dialog = new Dialog(this);       //这一步省去了在头文件里添加私有成员的操作
    不推荐这种方式,这是创建临时变量。还是正常操作吧~
      dialog->setModal(true);                  //setModal()是设置模态,就是得关闭当前窗口才能操作其他窗口
      dialog->show();                          //将new出的界面对象显示出来

            this:当前对话框窗口,QT有自动删除机制,自动删除机制:QT删除对话框时,会自动删除其所有的子对象。所以这里new出来的新对象不需要额外delete。

           setModal()可以在帮助文档里搜索了解,默认是false,是非模态,就是不需要关闭当前窗口也可以操作其他窗口(额外延申的一个小知识点,可以不写)。说点题外话,由于我也在学习,所以这些就是看了很多视频、博客才弄清楚内容综合了学来的知识点,可能有些你们也看到过了。b站有个不错的视频推荐给大家:2019年最新QT从入门到实战完整版。

     

          点击dialog.ui文件,同样的操作,选中按钮右键点击“转到槽”,默认点击“OK”,在槽函数里加:

           this->hide();                     //将当前界面挂起

    下面放几张截图吧,都是文字估计也不想看~~~

     

    头文件没有添加的,为了部分可能需要的小伙伴,也放上去吧~

    内容简单,有点凌乱,有点low阿,有问题留言就行~~ 

    展开全文
  • Qt 主窗口点击按钮 出另一个自定 List item 1.新建一个qt项目Application的Qt widgets Application,项目名字自己,我是没有改用untitled 2.右键项目->添加新文件->Qt设计师界面类( 建立一个对话框类:...
  • QT 按钮保持按下时样式

    千次阅读 2018-09-21 17:33:19
    想要按钮按下后保持press样式的样式,操作如下: 1、将所有按钮的如下的两个状态均选中 2、在每个按钮的槽函数后面加上setDown()函数,如下我的四个按钮, void radarCom::on_sendBtn_clicked() {   ...
  • Qt按钮qss样式总结

    千次阅读 2019-06-18 13:27:48
    Qt的界面可以通过qss语法优化,相对于MFC方便了很多,不用继承,重写按钮类的相关类和方法,用类似css样式表的语句即可进行美化,UI和主程序无关,例如下面是一个优化后的: 设置了倒角,边框,背景,鼠标...
  • 按钮 左键 按下 弹起时候 响应 消息

    千次阅读 2009-12-02 13:09:00
    最近在做按钮 发现 按钮本身之后 单击双击事件没有按下弹起事件,搜了一下说 可以重载 cbutton或者使用 消息 我选择使用消息只要在代码中插入如下函数 即可":BOOL AutoFocus::PreTranslateMessage(MSG* pMsg) { // ...
  • wxpython的toolbar上tb.AddLabelTool(10, "run", runbmp, shortHelp="run"),添加了一个运行按钮按下这个按钮会让一些脚本执行,在脚本执行过程中,这个RUN按钮是不弹起的,一直是按下的状态,也无法工具栏上的...
  • Qt 按钮样式

    2020-08-13 17:49:00
    一个按钮可以通过添加相应的样式即(btn -> setStyleSheet)实现按钮的美化。 而按钮的样式可分为如下所示: "background-color:rgba(100,225,100,30); 背景色,rgba分别为红绿蓝色以及透明度 “QPushButton{”...
  • 1.点击按钮弹窗 【效果表现】: ...2.鼠标移入按钮弹出移出按钮关闭弹窗 【效果表现】: 鼠标移入按钮,显示弹窗,鼠标移出按钮,弹窗关闭。 【代码实现】: 先把所有的button和弹窗对象安装到过滤器
  • QT 使用checkable属性让按钮变色

    千次阅读 2013-03-12 10:24:17
    我们希望我们的程序是这样的,当用户按下按钮时,按钮可以变色模拟按下的状态。为了实现这个功能,第一种方法可以在QT designer中在Push Button的checkable属性后面打钩,第二种方法直接在程序中调用setcheckable...
  • QT开发(七)——QT按钮组件

    千次阅读 2017-03-26 12:46:11
    QT开发(七)——QT按钮组件 QT中有六种按钮组件,分别是按压按钮QPushButton、工具按钮QToolButton、单选按钮QRadioButton、多选按钮QCheckBox、命令链接按钮QCommandLinkButton、按钮盒QButtonBox。一、...
  • Qt Qss按钮

    千次阅读 2017-10-11 09:46:15
    } 设置QPushButton类型的Widget显示图片的url地址 :hover 表示鼠标滑过时的状态 这里我们显示ButtonHover.png :pressed 表示鼠标点击时的状态 Qt的Qss文件是支持外部加载或者是资源内加载的, 比如资源内加载: QFile...
  • Qt_QPushButton 原生按钮长按

    千次阅读 2019-07-24 17:27:50
    QPushButton 带有按下和松开的信号,那就很简单了 按钮按下的时候启动一个定时器,指定一个时间间隔 TRIGGER_INTERVAL 只要按钮没有松开时间间隔到达之后,设置按钮触发自己的槽函数 。当按钮松开的时候 ,关闭...
  • 1 Qt按钮图标的设置 QIcon myicon1; myicon1.addFile(tr(":/image/Resource/new.png")); ui->new_btn->setIcon(myicon1); ui->new_btn->setIconSize(ui->new_btn->size()); //ui.btn_calib...
  • 按钮按下不自动弹起

    千次阅读 2014-05-07 15:01:55
    UIButton *pic_btn=[UIButton buttonWithType:UIButtonTypeRoundedRect... NSLog(@"弹起");  }else{  NSLog(@"按下");    }    _btn.selected=!_btn.selected;         }
  • QT 消息弹框隐藏关闭按钮

    千次阅读 2019-05-08 08:09:27
    setWindowFlags(Qt::Window | Qt::FramelessWindowHint | Qt::WindowTitleHint | Qt::WindowStaysOnTopHint); 目前测试只在windows上作用,linux上效果不好。
  • Qt自定义图片按钮并设置方向

    千次阅读 2017-09-24 11:47:25
    Qt自定义图片按钮,并设置方向的简短代码
  • Qt 自定义按钮

    千次阅读 2014-06-22 20:09:51
    按钮有三种状态,正常,鼠标滑过,鼠标左键anxia
  • QT中的QToolButton 工具按钮

    千次阅读 2018-12-15 14:14:15
    原文链接:https://blog.csdn.net/wangxiaobei2017/article/details/77824938  参考:... 工具按钮(QToolButton)区别于普通按钮(QPushButton)的一点是,工具按钮(QToolButton)可以带...
  • Qt Installer FrameWork MessageBox按钮翻译中文 因为项目需要,要为软件制作安装包,要求Linux和Windows界面一致,此时就想到用QIFW,制作安装包过程都还算顺利,但是发现出的消息框按钮不是中文,就查看帮助文档...
  • QT学习:设置按钮样式

    千次阅读 2020-10-22 20:06:19
    可通过样式表来设置按钮的外观。 ui->buttonCheck->setStyleSheet( //正常状态样式 "QPushButton{" "background-color:#67a6f8;"//设置按钮背景色 "border-radius:5px;"//设置圆角半径 "colo
  • Qt 之 自定义按钮 在鼠标 悬浮、按下、松开后的效果 发表于2016/12/5 15:28:36 4731人阅读 分类: Qt 一、简述 模仿qq登陆窗口:http://blog.csdn.net/goforwardtostep/article/details/53792702 ...
  • Qt设计师中实现按钮的单选互斥
  • 需要实现效果如下: 为此可以通过代码设置checkable属性为true: btn->...//导航按钮 QWidget *btn_widget = new QWidget(this); my_listWidget_btn = new QPushButton(this); my_lis...
  • 首先我收到的一个小项目中就要求要制作一个UI界面,然后通过按钮模拟键盘的一些组合键来实现一些要求,我百度了网上的很多中做法,网上给的方法具体如下* 使用QKeyEvent 具体的用法类似为: 使用tab键 QKeyEvent ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,407
精华内容 962
关键字:

qt按下弹起按钮