zoukankan      html  css  js  c++  java
  • paip.提升用户体验c++ qt 悬浮窗实现

    paip.提升用户体验---c++  qt 悬浮窗实现


    作者Attilax ,  EMAIL:1466519819@qq.com 
    来源:attilax的专栏
    地址:http://blog.csdn.net/attilax




    功能:一个悬浮窗,一个普通窗体..  双击悬浮窗可以显示或者隐藏普通窗体...


    1.建立悬浮窗:
    --------------------------
    悬浮窗要点:
    a.从QWidget 继承..没有工具bar, 状态bar...当然,从QMainWindowi继承也能了.
    b.去掉标题栏:       setWindowFlags( Qt::FramelessWindowHint
    c.窗体置顶    setWindowFlags(  Qt::WindowStaysOnTopHint 
    d. 隐藏任务栏图标 setWindowFlags(    Qt::Tool)   //工具条模式
    e:  背景透明      setAttribute(Qt::WA_TranslucentBackground, true);
    f:  添加鼠标事件..拖曳..鼠标动态图标等.
        void mousePressEvent(QMouseEvent *event);
        void mouseMoveEvent(QMouseEvent *event);
        void paintEvent(QPaintEvent *event);
        void enterEvent(QEvent *event);
        void leaveEvent(QEvent *event);
     
     
     2.建立普通窗体.
     3.悬浮窗增添双击事件,
     ---------------------------------
     signals:
        void DoubleClickedSignal();
     void FormWdg:: mouseDoubleClickEvent ( QMouseEvent* event )
    {
         qDebug()<< " floqt win double click";
             emit DoubleClickedSignal();


    }


    4.绑定悬浮窗双击事件信号到执行方法.
    ---------------------------------------------------------
    int main(int argc, char *argv[])
    {  MainWindow* w=new MainWindow() ;
        FormWdg*  widget=new FormWdg() ;
     QObject:: connect(widget, SIGNAL(DoubleClickedSignal()), w, SLOT(ShowMainWindow()));
        widget->show();
      w->show();
      
      5.实际的执行方法.
      ---------------------------
     public slots:
           void ShowMainWindow();  //for float invoke


    void MainWindow::ShowMainWindow()
    {    
        if(windowState() & Qt::WindowMinimized)
         {        show();
            setWindowState(Qt::WindowNoState);
        }   else   {
                 setWindowState(Qt::WindowMinimized);
        }
    }
       
    参考参考
    QT中QWidget、QDialog及QMainWindow的区别 - Hi小新 - 博客园.htm
    QT:不规则窗口的实现 - 小豪之家 - 博客频道 - CSDN.NET.htm
    QT:窗口最小化时显示一个小浮标_Linux编程_Linux公社-Linux系统门户网站.htm
    QT:窗口最小化时显示一个小浮标_Linux编程_Linux公社-Linux系统门户网站.htm
    QT中QWidget、QDialog及QMainWindow的区别 - 柳北风儿~~~~~~~欲宇仙炅 - ITeye技术网站.htm
    Qt之二(窗口部件) - wen.shuijie的日志 - 网易博客.htm
    QT区分鼠标单击和双击事件_陈伯林的电子备忘录_百度空间.htm
    Qt自定义窗口基本事件 - chenjinxian88的专栏 - 博客频道 - CSDN.NET.htm
    QT中大connect的使用 - imxiangzi的专栏 - 博客频道 - CSDN.NET.htm
    qt的qmake和shadow build - bailizi的专栏 - 博客频道 - CSDN.NET.htm
    浅谈 qmake 之 shadow build - 1+1=2 - 博客频道 - CSDN.NET.htm
    error  No rule to make target `c  Users Administrator Desktop LED_mainWindow pcb_view.ui', needed by - jiong_1988的专栏 - 博客频道 - CSDN.NET.htm
    Qt 出现“undefined reference to `vtable for”原因总结 - MoMo_KUA_1的专栏 - 博客频道 - CSDN.NET.htm


     

     
  • 相关阅读:
    增强MyEclipse提示功能
    Mysql安装配置,修改初试密码。
    在我的电脑里面创建图标
    popup non topmost
    多线程下载或上传数据限速
    SynchronizationContext
    linux运维笔记——常用命令详解diff
    linux运维笔记——curl
    linux下mysql的源码安装
    shell编程——变量的数值计算
  • 原文地址:https://www.cnblogs.com/attilax/p/15199532.html
Copyright © 2011-2022 走看看