所以我有以下代码:
data = data.frame(col1 = c(rep('first value', 5)), col2 = c(rep('second value', 5)))
> data
col1 col2
1 first value second value
2 first value second value
3 first value second value
4 first value second value
5 first value second value
> data = data %>% dplyr::select(col1)
Error in select_impl(.data, vars) :
SET_VECTOR_ELT() can only be applied to a 'list', not a 'symbol'
这可以很好地运行,并且启动画面完全按照我想要的方式显示,但是它在任务栏中没有显示图标,因此可以单击另一个窗口,再也看不到启动栏(它隐藏在其他窗口的后面)。
我已经尝试使用窗口标志QString splashImageFilePath = ":/images/Splashscreens/startup.png";
QSplashScreen * splash = new QSplashScreen();
splash->setPixmap(QPixmap(splashImageFilePath));
splash->show();
splash->raise();
,但如果使用此标志,任务栏中仍然没有图标,现在它始终位于所有其他窗口的顶部(我不想要)。
到目前为止,我已经浏览了几个窗口标记,并在Google上展示了很长时间,我试图展示它。
另外,我知道我可以给构造函数一个父窗口,但是这段代码在Qt::WindowStaysOnTopHint
内部,因此我没有办法给它一个父窗口(带有空构造函数的QWidget也没有不起作用)。
TLDR:我希望QSplashScreen在任务栏中有一个图标。
提前谢谢!
答案 0 :(得分:1)
有点晚了,但是我遇到了同样的问题,并直接使用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();