当前位置: 首页 > 知识库问答 >
问题:

使用QSplashScreen时如何显示任务栏图标

凤修筠
2023-03-14

所以我有以下代码:

QString splashImageFilePath = ":/images/Splashscreens/startup.png";

QSplashScreen * splash = new QSplashScreen();
splash->setPixmap(QPixmap(splashImageFilePath));

splash->show();
splash->raise();

运行良好,闪屏显示得与我想要的完全一样,但它不在任务栏中显示图标,因此可以单击另一个窗口,再也看不到闪屏栏(它隐藏在其他窗口后面)。br>

我已经尝试使用窗口标志 ,但是如果我使用它,任务栏中仍然没有图标,而且现在它总是位于所有其他窗口的顶部(这是我不想要的)。br>

到目前为止,我已经浏览了一些窗口标志,并在谷歌上搜索了很长一段时间,我试图显示它。br>

另外,我知道我可以给构造函数一个父窗口,但是这个代码在 中,所以我没有办法给它一个父窗口(一个带有空构造函数的QWidget也不能工作)。br>

TLDR:我希望我的QSplashScreen在任务栏中有一个图标

提前谢谢你!

共有1个答案

黎奇略
2023-03-14

有点晚,但我遇到了同样的问题,并直接使用WinAPI修复了它:

QSplashScreen splash;
splash.setPixmap(QPixmap(splashImageFilePath));

// ensure that taskbar icon is shown while the splash screen is active
int exstyle = GetWindowLong(reinterpret_cast<HWND>(splash.winId()), GWL_EXSTYLE);
SetWindowLong(reinterpret_cast<HWND>(splash.winId()), GWL_EXSTYLE, exstyle & ~WS_EX_TOOLWINDOW);

splash.show();
 类似资料:
  • 问题内容: 我在“ openSUSE 11.4(x86_64)”上以全屏模式运行Java应用程序时遇到问题。我正在使用Java 1.6.0_26-b03。 我尝试运行两个全屏应用程序示例: 来自Oracle网站的示例:Display Mode Test。 从Codealchemists下载的JDarkRoom.jar(简单文本编辑器)。 在这两种情况下,我都可以在应用程序上看到一个Linux任务栏

  • 问题内容: 我想让我的程序显示在任务栏中,但仍然没有传统的Windows寄宿生。我该怎么办?我知道 self.overrideredirect(1) ,但是这从任务栏中删除了我的程序。 这适用于Windows 7。 问题答案: 我没有断言这是“正确”的方法,但是请看这是否对您有用:

  • 问题内容: 我正在尝试在Windows中显示。如何在Windows任务栏上显示(如)? 问题答案: 对话框本身不能具有任务栏条目,但是您可以构造一个没有任何可见效果的框架,并将其用作对话框的父级。然后,该对话框看起来像具有任务栏条目。以下代码显示了如何执行此操作:

  • 我正在使用下面的代码进行屏幕截图,但我只想隐藏窗口任务栏。在没有输入尺寸的情况下,是否有任何特定的代码。我不想输入dimension,因为每台电脑都有不同的。。请建议。提前谢谢。 机器人=新机器人();维度screenSize=Toolkit。getDefaultToolkit()。getScreenSize();矩形captureRect=新矩形(Toolkit.getDefaultToolki

  • 我有一个用LabVIEW创建的应用程序,我需要在运行时在Windows任务栏上显示/隐藏应用程序图标。我认为WINAPI可以用于此目的,我尝试使用ShowWindow函数(user32.dll) 显示窗口(hWnd,SW_HIDE)- 显示窗口(hWnd,SW_SHOWMINIMIZED)-

  • 问题内容: 我正在使用以下代码在任务栏上显示JDialog,并且在JDK 1.6中可以正常工作。 但是当我使用方法设置模态类型时,它不起作用 这两个代码之间有什么区别?有什么方法可以解决此问题吗? 问题答案: 问题是某些所有者的构造方法会创建一个伪框架所有者(如果所有者是出于历史原因)。但是 必须没有 所有者像顶级窗口一样可见。即 将工作。