wei_Y 发表于 2016-10-22 22:01:37

弹出顶级窗口问题。



有这么一个需求。

每多少秒弹出一个框,什么框都行。(最好是非文件框。)

这个框的作用是让最小化的程序,或者覆盖在其他东西后面的程序跳到最前面。


上效果。

@不二如是 @~风介~

不二如是 发表于 2016-10-22 22:52:20

我拿手机看,直觉告诉我,搞成模态对话框不就好了

不二如是 发表于 2016-10-22 22:59:05

本帖最后由 不二如是 于 2016-10-22 23:00 编辑

1-每隔几秒弹出一个对话框,很简单加一个定时器,几s一个信息框

2-弹出的框因为在最顶层,所以通过点击这个框,让他下面的框弹出,这个框再消失也不难
直接进到这个框的槽函数内,你要输出的widget-》show(),然后close()

明天我写个实现你看是这意思不

3-模态对话框的话,根本不用弹框,你需要的那个框永远在最顶层

~风介~ 发表于 2016-10-22 23:06:54

UINT肯定知道!{:10_256:}@无符号整形

无符号整形 发表于 2016-10-23 08:58:58

给一个例子吧,不会QT ,用SDK写的……{:10_256:}
每5秒一个框,把窗口带出来。

山寨了一下,没有代码~@~风介~

~风介~ 发表于 2016-10-23 09:57:40

无符号整形 发表于 2016-10-23 08:58
给一个例子吧,不会QT ,用SDK写的……
每5秒一个框,把窗口带出来。



大佬请查验!{:10_256:}@wei_Y

wei_Y 发表于 2016-10-23 10:36:00

本帖最后由 wei_Y 于 2016-10-23 10:38 编辑

不二如是 发表于 2016-10-22 22:59
1-每隔几秒弹出一个对话框,很简单加一个定时器,几s一个信息框

2-弹出的框因为在最顶层,所以通过点击 ...

现在就是用的定时器。图上那个效果是3秒一个框。

我最小化后它会弹出来,但是不会让你知道它弹出来了。

打包EXE,EXE。

wei_Y 发表于 2016-10-23 10:37:06

~风介~ 发表于 2016-10-23 09:57
大佬请查验!@wei_Y

{:10_282:}介哥!

不二如是 发表于 2016-10-23 11:11:57

本帖最后由 不二如是 于 2016-10-23 11:13 编辑

wei_Y 发表于 2016-10-23 10:36
现在就是用的定时器。图上那个效果是3秒一个框。

我最小化后它会弹出来,但是不会让你知道它弹出来 ...



定时器你都会了我就没敲

默认弹出一个messagebox,点击ok,后面的窗口都会弹出来,并且此框消失

最后的widget就是最小化或者被隐藏的窗口

你看是这意思不?

wei_Y 发表于 2016-10-23 11:15:32

不二如是 发表于 2016-10-23 11:11
定时器你都会了我就没敲

默认弹出一个messagebox,点击ok,后面的窗口都会弹出来,并且此框消失 ...

就是这意思。

不二如是 发表于 2016-10-23 11:19:23

wei_Y 发表于 2016-10-23 11:15
就是这意思。

    msg.setText("弹出后面的~");
    msg.exec();
    int ret = QMessageBox::warning(this, tr("警告框"),
                                 tr("The document has been modified.\n"
                                    "Do you want to save your changes?"),
                                 QMessageBox::Save | QMessageBox::Discard
                                 | QMessageBox::Cancel,
                                 QMessageBox::Save);

    int ret2 = QMessageBox::information(this,tr("信息框"),tr("只是用来提示信息"),QMessageBox::Help);

    int ret3 = QMessageBox::question(this,tr("询问框"),tr("我就是确认下的"),QMessageBox::Ok);


    int ret4 = QMessageBox::critical(this,tr("警告框"),tr("不要这么搞了!"),QMessageBox::Close);

不二如是 发表于 2016-10-23 11:19:53

wei_Y 发表于 2016-10-23 11:15
就是这意思。

直接加在构造函数,这是最简单的

wei_Y 发表于 2016-10-23 11:29:03

不二如是 发表于 2016-10-23 11:19


好像不行,
      # a = QMessageBox.warning(self, '11', '22', QMessageBox.Save | QMessageBox.Discard| QMessageBox.Cancel,
      #                            QMessageBox.Save)
      # a = QMessageBox.information(self, '11', '22', QMessageBox.Help)
      # a = QMessageBox.question(self, '11', '22', QMessageBox.Ok)
      a = QMessageBox.critical(self, '11', '22', QMessageBox.Ok)
这是代码,
self 就是this
QMessage.Help就是QMessage::Help。

效果是无符号整形那个样子。

不二如是 发表于 2016-10-23 11:31:50

wei_Y 发表于 2016-10-23 11:29
好像不行,

这是代码,


然后嘞?得到你想要的效果没?{:10_257:}

wei_Y 发表于 2016-10-23 11:34:20

不二如是 发表于 2016-10-23 11:31
然后嘞?得到你想要的效果没?

没有,最小化后还是不能让我知道它弹出来了。
它就是弹窗了,但是他没弹到顶级窗口,缩小后不知道它弹没弹。

不二如是 发表于 2016-10-23 12:16:26

wei_Y 发表于 2016-10-23 11:34
没有,最小化后还是不能让我知道它弹出来了。
它就是弹窗了,但是他没弹到顶级窗口,缩小后不知道它弹 ...

你直接把你要的dialog->setModal(true);

然后连弹出都不需要,永远置顶

wei_Y 发表于 2016-10-23 12:22:43

不二如是 发表于 2016-10-23 12:16
你直接把你要的dialog->setModal(true);

然后连弹出都不需要,永远置顶

{:10_277:}可是我需要他最小化。。

不二如是 发表于 2016-10-23 12:25:05

wei_Y 发表于 2016-10-23 11:15
就是这意思。

无符号那个我看了
只是再点击最小化时,弹出一个对话框,阻碍最小化。好像跟你需要的不一样。。。

不二如是 发表于 2016-10-23 12:27:33

wei_Y 发表于 2016-10-23 12:22
可是我需要他最小化。。

如果你调用dialog的话,再自己加一个最小化功能dialog.showMinimized()

wei_Y 发表于 2016-10-23 12:27:50

不二如是 发表于 2016-10-23 12:25
无符号那个我看了
只是再点击最小化时,弹出一个对话框,阻碍最小化。好像跟你需要的不一样。。。

不是,他那个就是最小化好后弹个框能有提示。

就是让他只闪光也行啊。
页: [1] 2
查看完整版本: 弹出顶级窗口问题。