【问题标题】:wxpython: suppress/disable hover-over popup window with listctrlwxpython:使用 listctrl 抑制/禁用悬停弹出窗口
【发布时间】:2016-06-06 13:52:39
【问题描述】:

listctrl 中,如果单元格中的文本比单元格的宽度长,则只有部分文本可见。当我将鼠标光标放在所述单元格的顶部时,将出现一个小的弹出窗口以尝试显示全文(请参见下面的屏幕截图)。 我想知道是否有办法抑制/禁用此行为。

【问题讨论】:

    标签: wxpython wxwidgets listctrl


    【解决方案1】:

    当使用 LVS_EX_LABELTIP 扩展样式时,本机控件会显示此工具提示,恕我直言,非常有用,因为如果不调整整个列的大小,就不可能看到过长单元格的内容。因此,默认情况下它是启用的,并且由于它是非常特定于 MSW 的,wxWidgets API 没有提供禁用它的方法。

    如果您真的非常需要这样做,您可以随时使用特定于 MSW 的代码并执行以下操作(警告:未经测试的代码):

    #ifdef __WXMSW__
        HWND hwndList = (HWND)listctrl->GetHandle(); 
        LPARAM style = ::SendMessage(hwndList, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0);
        ::SendMessage(hwndList, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, style & ~LVS_EX_LABELTIP);
    #endif
    

    【讨论】:

    • 如果您能展示一种方法来启用DataViewCtrl 的工具提示,那么我这边肯定会赏金 :)
    • @nepix32,你说的是 MSW 还是 GTK/Cocoa?
    • 抱歉没有更具体:我的意思是 DataViewCtrl 用于 MSW 的工具提示。
    • 不,只有本机控件显示这样的工具提示,如果有它们用于 wxDVC 会很好,但我们需要自己实现它们。这当然是可行的,但同样肯定还没有完成。
    • @nepix32 这在控制中肯定会很棒。此刻有一些提示如何在派生类中实现某些东西:forums.wxwidgets.org/… 但还需要一些特定于平台的附加功能。如果您想进一步讨论,我建议您开始一个新问题。
    【解决方案2】:

    您可以改用DataViewListCtrl,它缺少这个有用的功能(当线条为椭圆时的工具文本)。据我所知,它不是ListCtrl 的插件,因此使用它的语法会有所不同。

    【讨论】:

      猜你喜欢
      • 2018-05-04
      • 2016-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-18
      • 2016-12-17
      相关资源
      最近更新 更多