返回介绍

QWhatsThis类

发布于 2019-10-04 15:03:53 字数 5823 浏览 1409 评论 0 收藏 0

QWhatsThis类提供了任何一个窗口部件的简单描述,比如,回答“这是什么?”的问题。 详情请见……

#include <qwhatsthis.h>

继承了Qt。

所有成员函数的列表。

公有成员

  • QWhatsThis ( QWidget*widget )
  • virtual ~QWhatsThis ()
  • virtual QString text ( const QPoint & )
  • virtual bool clicked ( constQString&href )

静态公有成员

  • void add ( QWidget*widget, constQString&text )
  • void remove ( QWidget*widget )
  • QString textFor ( QWidget*w, constQPoint&pos = QPoint ( ), boolincludeParents = FALSE )
  • QToolButton * whatsThisButton ( QWidget*parent )
  • void enterWhatsThisMode ()
  • bool inWhatsThisMode ()
  • void leaveWhatsThisMode ( constQString&text = QString::null, constQPoint&pos = QCursor::pos ( ), QWidget*w = 0 )
  • void display ( constQString&text, constQPoint&pos = QCursor::pos ( ), QWidget*w = 0 )

详细描述

QWhatsThis类提供了任何一个窗口部件的简单描述,比如,回答“这是什么?”的问题。

“这是什么?”帮助是提供给用户关于功能、用法、背景等等不同水平的从短的工具指南到完全的文本浏览帮助窗口的应用程序的在线帮助系统的一部分。

QWhatsThis是当用户询问“这是什么?”时提供的弹出的具有说明性文本的一个单一窗口。这样做的默认方法是把焦点移动到相关窗口部件并且按下Shift+F1。帮助文本就会立即出现,一旦用户做了其它什么事情,它就消失了。

(注意如果其它地方的快捷键是Shift+F1的话,这个机制就不能工作了。)

为了给一个窗口部件添加“这是什么?”文本,你只要对它简单地调用QWhatsThis::add()就可以了。比如,给一个菜单项分配文本,调用QMenuData::setWhatsThis(),对于一个全局快捷键,调用QAccel::setWhatsThis()并且如果你正在使用操作,使用QAction::setWhatsThis()。

这个文本可以是纯文本,也可以是多信息文本。如果你指定了一个多信息文本格式的字符串,它将被使用默认的样式表来显示。这样还可以使用嵌入的图片。详细情况请参考QStyleSheet::defaultSheet()。

        const char * fileOpenText = "<p><img source=\"fileopen\"> "
                         "Click this button to open a <em>new file</em>. <br>"
                         "You can also select the <b>Open</b> command "
                         "from the <b>File</b> menu.</p>";
        QMimeSourceFactory::defaultFactory()->setPixmap( "fileopen",
                              fileOpenAction->iconSet().pixmap() );
        fileOpenAction->setWhatsThis( fileOpenText );

(对于上面的代码更详细的解释请参考具有QAction特征的简单应用程序的排演。)

另一个进入“这是什么?”模式的方法是使用已经由QWhatsThis::whatsThisButton()做好的工具条按钮。通过调用这个上下文帮助按钮(在下面图片中右面的第一个),用户切换到“这是什么?”模式。如果现在你在窗口部件上点击,适当的帮助文本就会被显示。当帮助被给出或者用户按下Esc时,这个模式就离开了。

如果你正在使用QMainWindow,你也可以使用QMainWindow::whatsThis()槽来从菜单项中调用这个模式。

为了更多的控制,你可以为一个特定窗口部件创建一个专用的QWhatsThis对象。通过继承和重新实现QWhatsThis::text(),它可能具有不同的帮助文本,依赖于鼠标点击的位置。通过重新实现QWhatsThis::clicked(),在帮助文本中使用超链接也是可能的。

如果你想手工地控制窗口部件的“这是什么?”的行为,请参考QWidget::customWhatsThis()。

使用QWhatsThis::remove()可以移除这是什么对象,尽管这很少需要,因为当窗口部件被销毁时它会被自动地移除。

也可以参考QToolTip和帮助系统。


成员函数文档

QWhatsThis::QWhatsThis ( QWidget*widget )

widget构造一个动态的“这是什么?”对象。当被传递的窗口部件被销毁时,这个对象被删除。

当这个窗口部件被用户查询时,这个QWhatsThis的text()函数将会被调用来提供适当的文本,而不是使用由add()提供的文本。

QWhatsThis::~QWhatsThis () [虚]

销毁这个对象并释放任何被分配的资源。

void QWhatsThis::add ( QWidget*widget, constQString&text ) [静态]

widget添加text作为“这是什么?”帮助。如果这个文本是多信息文本格式(比如,它包含标高),它将被使用默认的样式表QStyleSheet::defaultSheet()来显示。

如果这个窗口部件后来被销毁,这个文本也被销毁,所以它不需要被明显地移除。

也可以参考remove()。

实例:application/application.cpp和mdi/application.cpp。

bool QWhatsThis::clicked ( constQString&href ) [虚]

当用户在“这是什么?”窗口中点击鼠标时,这个虚函数被调用。href是用户所点击的连接,如果没有连接,就是QString::null。

如果函数返回真(默认),“这是什么?”窗口被关闭,否则它仍保留可视。

默认实现是忽略href并且返回真。

void QWhatsThis::display ( constQString&text, constQPoint&pos = QCursor::pos ( ), QWidget*w = 0 ) [静态]

在全局屏幕的帮助窗口中位置pos显示text

如果窗口部件w不为零并且已经有了自己专有的QWhatsThis对象,当用户在帮助文本的超链接上点击时,这个对象将会接收clicked()消息。

也可以参考QWhatsThis::clicked()。

void QWhatsThis::enterWhatsThisMode () [静态]

进入“这是什么?”模式并且立即返回。

Qt将会安装一个特定的光标并且取代鼠标输入直到用户在某处点击为止。然后它显示任何可以提供的帮助并且切换出“这是什么?”模式。最后,Qt在鼠标左键不再点击的点移除特定光标和帮助窗口,然后回复通常的事件处理。

用户也可以使用Esc键离开“这是什么?”模式。

也可以参考inWhatsThisMode()和leaveWhatsThisMode()。

bool QWhatsThis::inWhatsThisMode () [静态]

如果应用程序在“这是什么?”模式中,返回真,否则返回假。

也可以参考enterWhatsThisMode()和leaveWhatsThisMode()。

void QWhatsThis::leaveWhatsThisMode ( constQString&text = QString::null, constQPoint&pos = QCursor::pos ( ), QWidget*w = 0 ) [静态]

离开“这是什么?”问题模式。

这个函数被支持QWidget::customWhatsThis()的窗口部件内部使用,应用程序通常不会调用它。有一个QPopupMenu这样的窗口部件的实例:菜单还在“这是什么?”模式正常工作,但也为个别的菜单项提供帮助文本。

如果text不是一个零字符串,“这是什么?”帮助窗口将在全局屏幕的位置pos处被显示。如果窗口部件w非零并且它有自己专有的QWhatsThis对象,当用户点击帮助文本中的超链接时,这个对象将收到clicked()消息。

也可以参考inWhatsThisMode()、enterWhatsThisMode()和QWhatsThis::clicked()。

void QWhatsThis::remove ( QWidget*widget ) [静态]

移除和widget相关的“这是什么?”帮助。如果这个窗口部件被销毁,这也会自动发生。

也可以参考add()。

QString QWhatsThis::text ( constQPoint& ) [虚]

虚函数返回这个“这是什么?”对象文档的窗口部件在位置p的文本。如果在这个位置没有“这是什么?”文本,QString::null被返回。

默认实现是返回QString::null。

QString QWhatsThis::textFor ( QWidget*w, constQPoint&pos = QPoint ( ), boolincludeParents = FALSE ) [静态]

为窗口部件w返回这是什么的文本,或者如果对于这个窗口部件没有任何“这是什么?”帮助,返回一个零字符串。pos包含鼠标位置,这很有用,例如,如果你已经继承来使文本根据这个位置进行显示。

如果includeParents为真,父窗口部件将也被考虑进去。

也可以参考add()。

QToolButton* QWhatsThis::whatsThisButton ( QWidget*parent ) [静态]

当点击时,创建一个预定义进入“这是什么?”模式的QToolButton。你通常可以使用菜单条作为它的parent
     (void) QWhatsThis::whatsThisButton( my_help_tool_bar );
  

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文