QToolTip 的显示时间可以通过 QToolTip::showText()
函数的第四个参数来设置,该参数表示提示框显示的时间长度(以毫秒为单位)。默认情况下,显示时间是 5000 毫秒(5 秒),如果你需要更改显示时间,可以将第四个参数设置为所需的毫秒数。
但有时候可能会发现设置了显示时间并没有起作用。这通常是因为在 QApplication 中禁用了 Qt 自带的提示框。可以通过以下代码检查当前是否禁用了提示框:
qDebug() << qApp->overrideCursor();
如果输出结果为 NULL
或者 nullptr
,则说明提示框被禁用了。要启用提示框,可以使用以下代码:
qApp->setOverrideCursor(Qt::ArrowCursor);
这样就能够正确地设置 QToolTip 的显示时间了。例如:
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QPushButton button("Button");
button.setToolTip("This is a button");
// 确保提示框未被禁用
if (!qApp->overrideCursor()) {
qApp->setOverrideCursor(Qt::ArrowCursor);
}
// 设置 QToolTip 的显示时间为 3 秒
QToolTip::showText(button.mapToGlobal(button.rect().bottomLeft()), "This is a tooltip", &button, QRect(), 3000);
button.show();
return app.exec();
}
运行后,可以看到按钮上出现一个提示框,并且自动消失。