Windows中的QSystemTrayIcon工具提示最大长度是多少?

时间:2017-05-19 08:38:18

标签: c++ windows qt system-tray

我在QSystemTrayIcon::toolTip的Qt 5.8文档中读到:

  

此属性包含系统托盘条目的工具提示。

     

在某些系统上,工具提示的长度有限。工具提示将是   必要时会被截断。

然后我想知道Windows 10中的限制是什么。

我在About Tooltip Controls看到了

  

注意标准工具提示文本的最大长度为80个字符。有关更多信息,请参阅NMTTDISPINFO结构。多行工具提示文本可以更长。

然后,我有一个使用Qt创建的多行工具提示,我看到在Windows 10中最大长度为123个字符(如果他们计算换行符,可能会多一点,比如说〜130)。

我的问题是:这是(~130 char)Windows 10中多行工具提示的最大长度吗?我是否可以从Qt获取此信息,具体取决于系统(如果应用程序在不同的操作系统上运行),以便我可以正确更改工具提示文本?

谢谢大家

1 个答案:

答案 0 :(得分:2)

在Windows 2000及更高版本中,工具提示的最大长度为128个字符。这在MSDN中记录为NOTIFYICONDATA structure

  

szTip

     

类型:TCHAR [64]

     

以空字符结尾的字符串,用于指定标准工具提示的文本。它最多可包含64个字符,包括终止空字符。

     

对于Windows 2000及更高版本,szTip最多可包含128个字符,包括终止空字符。

关于可移植性,这是一个非常系统特定的值,所以我不认为你可以使用普通Qt获得它。例如,Linux中的不同Windows管理器可能具有不同的长度限制。

另一方面,为了完整起见,系统托盘气球中文本的长度较大(仅限Windows 2000及更高版本,取自同一来源):

  

szInfoTitle

     

类型:TCHAR [64]

     

Windows 2000及更高版本。以null结尾的字符串,用于指定气球通知的标题。此标题在文本正上方以较大的字体显示。它最多可包含64个字符,包括终止空字符,但应限制为英文48个字符以适应本地化。

     

dwInfoFlags

     

输入:DWORD

     

Windows 2000及更高版本。可以设置的标志,用于修改气球通知的行为和外观。图标位于标题的左侧。如果szInfoTitle成员为零长度,则不显示图标。