windows – 没有窗口图标的Qt对话框(系统菜单)
发布时间:2020-12-14 02:53:11 所属栏目:Windows 来源:网络整理
导读:有没有办法创建一个窗口(如QDialog),左上角没有窗口图标?我尝试过使用透明图标,但在那里留下了空白. 编辑:下面的richardwb解决方案删除了??系统菜单,但也删除了最小化/最大化/关闭(标题按钮).这可能现在可以做,但希望有一个解决方案可以保留字幕按钮. 解决
有没有办法创建一个窗口(如QDialog),左上角没有窗口图标?我尝试过使用透明图标,但在那里留下了空白.
编辑:下面的richardwb解决方案删除了??系统菜单,但也删除了最小化/最大化/关闭(标题按钮).这可能现在可以做,但希望有一个解决方案可以保留字幕按钮. 解决方法
如果您根本不需要任何标题按钮,可以通过设置一些
window flag hints来实现:
setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint); Qt的演示应用程序有一个示例应用程序,如果你想看看不同的组合做什么,你可以试验这些标志(Qt Demo-> Widgets-> Window Flags). 另一方面,如果您想要任何最小化/最大化/关闭按钮,您会注意到Qt强制显示系统菜单和窗口图标.我认为这是Qt对平台的概括,因为使用“关闭”按钮但没有系统菜单和窗口图标很容易找到本机Windows对话框的示例. 在这种情况下,您将需要一些Windows特定的代码,类似于此(未经测试): #if defined(Q_WS_WIN) // don't forget to #include <windows.h> HWND hwnd = winId(); LONG_PTR style = GetWindowLongPtr(hwnd,GWL_STYLE); style &= ~WS_SYSMENU; // unset the system menu flag SetWindowLongPtr(hwnd,GWL_STYLE,style); // force Windows to refresh some cached window styles SetWindowPos(hwnd,SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED); #endif 编辑:正如swongu评论的那样,只有在你想要一个没有系统菜单的关闭按钮时才有效.如果你想要一个最小化/最大化按钮但没有系统菜单,那你就不走运了. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读