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

来源:互联网 发布:适合程序员的背包 编辑:程序博客网 时间:2024/05/03 17:20
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


 

 
原创粉丝点击