QApplication::alert 如果窗口不是活动窗口,则会向窗口显示一个警告(非常好用,效果就和TeamViewer一样)

void QApplication::alert(QWidget * widget, int msec = 0)
如果窗口不是活动窗口,则会向窗口显示一个警告。警报会显示msec 毫秒。
如果毫秒为零,闪烁一段时间后会停止,任务栏图标会一直亮着。

widget.h

  1. #ifndef WIDGET_H
  2. #define WIDGET_H
  3. #include <QWidget>
  4. #include <QTimer>
  5. #include <QTime>
  6. namespace Ui {
  7. class Widget;
  8. }
  9. class Widget : public QWidget
  10. {
  11. Q_OBJECT
  12. public:
  13. explicit Widget(QWidget *parent = 0);
  14. ~Widget();
  15. void setms(int m);
  16. public slots:
  17. void start();
  18. private:
  19. Ui::Widget *ui;
  20. int ms;
  21. QTimer *timer;
  22. };
  23. #endif // WIDGET_H

widget.cpp

  1. #include "widget.h"
  2. #include "ui_widget.h"
  3. Widget::Widget(QWidget *parent) :
  4. QWidget(parent),
  5. ui(new Ui::Widget)
  6. {
  7. ui->setupUi(this);
  8. timer = new QTimer();
  9. timer->setInterval(1000);
  10. timer->start();
  11. connect(timer, SIGNAL(timeout()), this, SLOT(start()));
  12. }
  13. Widget::~Widget()
  14. {
  15. delete ui;
  16. }
  17. void Widget::start()
  18. {
  19. QApplication::alert(this, ms);
  20. }
  21. void Widget::setms(int m)
  22. {
  23. ms=m;
  24. }

main.cpp

    1. #include "widget.h"
    2. #include <QApplication>
    3. int main(int argc, char *argv[])
    4. {
    5. QApplication a(argc, argv);
    6. Widget w;
    7. w.setms(1000);
    8. w.show();
    9. return a.exec();
    10. }

http://blog.chinaunix.net/uid-29994589-id-5207150.html

时间: 2024-10-26 00:21:24

QApplication::alert 如果窗口不是活动窗口,则会向窗口显示一个警告(非常好用,效果就和TeamViewer一样)的相关文章

BootStrap入门教程 (四) :JQuery类库插件(模态窗口,滚动监控,标签效果,提示效果,“泡芙”效果,警告区域,折叠效果,旋转木马,输入提示)

上讲回顾:Bootstrap组件丰富同时具有良好可扩展性,能够很好地应用在生产环境.这些组件包括按钮(Button),导航(Navigation),缩略图( thumbnails),提醒(Alert),进度条(progress bar)等,能够很好减少前端工程师的代码量,实现更加丰富充实的页面. Bootstrap作为一套良好的前端工具,要实现现代的动态页面效果,javascript插件是必不可少的.它提供了12个基于JQuery类库的插件,包括模态窗口(Modals),滚动监控(Scrolls

unity3d中的物体,在Scene窗口中可以看到,而在Game窗口中看不到的原因

unity3d中的物体,在Scene窗口中可以看到,而在Game窗口中看不到的原因: 多半是因为物体所属Layer与照相机的culling mask不一致导致的,或者超出照相机的可视范围. 如果游戏中有多个相机,每个相机都有自己的可视范围和culling mask,物体在移动的过程中,进入不同的相机,其可见性可能是变化的,取决与物体所属Layer与当前相机是否一致

WPF: ShowDialog() 切换到其他应用窗口后,再切换回来无法让子窗口总在最上方

按说ShowDialog()是模态窗口,应该在主窗口的上方,但是打开其他应用窗口再切换回来的时候,发现子窗口不见了,主窗口又不能操作. 另外子窗口设置成不在任务栏显示,只能通过Alt-Tab来切换到子窗口. 我找了很久,才找到一个解决办法,其实很简单, 就是在子窗口里设置Owner为父窗口. 我是在子窗口的构造函数里写的: this.Owner = Application.Current.MainWindow; 参考链接如下: http://www.telerik.com/community/f

易语言利用窗口消息实现无边框调整和移动窗口

首先你可以添加4个图片框作为窗口的标题栏和边框 窗口的四周边框和标题栏可以用图片框来捏造 如果你不想别人看见图片框的话可以把图片框的背景颜色弄得和窗口底色一样 移动窗口,你可以用: _启动窗口.发送信息 (161, 2, 0) 改变窗口大小,你可以用: _启动窗口.发送信息 (274, 61441, 0) ' 可以调整窗口左边的边框 _启动窗口.发送信息 (274, 61442, 0) ' 可以调整窗口右边的边框 _启动窗口.发送信息 (274, 61443, 0) ' 可以调整窗口上边的边框

桌面上嵌入窗口(桌面日历)原理探索(将该窗口的Owner设置成桌面的Shell 窗口,可使用SetWindowLong更改窗口的GWL_HWNDPARENT,还要使用SetWindowPos设置Z-Order)

今天在QQ群里有人问怎样实现将自己的窗口嵌入桌面,让它和桌面融为一体,就像很多桌面日历软件那样. 我当时想到的就是建立一个Child  Window,将他的父窗口设置成桌面Shell窗口就可以了.但是后来想想觉得不对,因为很多桌面日历窗口都有半透明和阴影效果,明显是用Layered Window实现的,而大家知道Layered Window一定要用Pop Up Window才能实现的. 那么如何用Pop up Window实现这种效果呢? 这里关键的一点就是要将该窗口的Owner设置成桌面的Sh

除了创建时指定窗口位置之外,还有3种移动窗口位置的办法(移动的同时往往可以改变窗口大小)(SetWindowPos最有用,它有许多标志位)

首先,在创立窗口对象的时候,CreateWindowEx就可以指定窗口的位置.除此之外,还有三种方法可以改变窗口的位置: procedure TWinControl.CreateWindowHandle(const Params: TCreateParams); begin // 根据之前准备的Params参数使用API创建窗口.其10个参数都是Params的参数,0表示Menu,WindowClass的十项内容只用到了hInstance一项 // important 控件移到正确的显示位置,就

Excel在任务栏中只显示一个窗口的解决办法

Excel在任务栏中只显示一个窗口的解决办法 以前朋友遇到过这个问题,这次自己又遇到了,习惯了以前的那种在任务栏中显示全部窗口,方便用Alt+Tab键进行切换. 如果同时打开许多Excel工作簿,在桌面任务栏中通常会显示多个工作簿窗口按钮.如果任务栏只中显示了一个Excel窗口按钮,所有的工作簿窗口只出现在Excel程序窗口内部,可能是相关的设置被改动了,可以通过下面方法改回设置: 在Excel 2003中单击菜单“工具→选项”,选择“视图”选项卡,选择“任务栏中的窗口”. 在Excel 200

QT+创建两个不相干的窗口实现一个显示一个不显示

因为两个窗口互不相干,所以需要重新创建一个窗口类subWidget subWidget.cpp文件 #ifndef SUBWIDGET_H #define SUBWIDGET_H #include <QWidget> #include <QPushButton> class SubWidget : public QWidget { Q_OBJECT public: explicit SubWidget(QWidget *parent = 0); void sendSlot(); s

在线程中显示一个窗口(多个UI线程)

多数耗时操作可以异步执行,推荐async/await. 但和UI相关的部分仅能在UI线程执行,这时UI线程的耗时操作,导致界面卡死,不够友好. 我们可以创建一个单独的UI线程显示一个正在加载的窗口,可以在窗口显示一些动画之类的. 如果是WinForms那么很容易做到. Application.Run(new LoadingForm()); WPF没有提供这样简单的方式,官方文档中有示例<多窗口.多线程>,官方例子 ExceptionHandlingSecondaryUIThread 经过简化后