在像QLabel这样的QWidget中,我们如何设置一个“?”按钮,这样当点击(或徘徊)时,它应该显示一些帮助文本。Qt:如何设置“?” QWidget按钮?
回答
悬停QWidget时显示帮助的最简单方法是:setToolTip(QString)和setToolTipDuration(int)。 如果你想要一个“?”按钮,只需实现你自己的QWidget。然后通过UI设计器或直接在您的代码中添加QPushButton和QLabel布局,并显示您的QLabel单击()时光标位置的帮助文本。这样的事情:
{
// Constructor
...
m_mainLabel = new QLabel("Main text");
m_button = new QPushButton("?");
m_helpLabel = new QLabel("Help text");
connect(m_button, SIGNAL(clicked(bool)),
this, SLOT(slotShowOrHideHelpLabel(bool)));
QHBoxLayout *hBoxLayout = new QHBoxLayout;
hBoxLayout->addWidget(m_mainLabel);
hBoxLayout->addWidget(m_button);
setLayout(hBoxLayout);
}
void slotShowOrHideHelpLabel(bool showHelpLabel)
{
if (showHelpLabel)
{
m_helpLabel->show();
m_helpLabel->move(QCursor::pos());
}
else
{
m_helpLabel->hide();
}
}
感谢您的建议。而不是创建一个helpLabel,在“?”按钮单击,我正在为主标签执行setToolTip()和setWhatsThis()。但不知何故,这个工具提示和什么是不会出现的。如何在点击事件中启用它们? – user2653062
您可以使用eventFilter处理主标签上的单击事件,而无需实现自定义类。并在单击事件的处理程序中创建并显示您在toolTip或whatsThis中设置的文本的helpLabel。据我所知,toolTip,WhatsThis,statusTip是持有信息的属性。您可以将其用于您的目的,例如,单击时显示在标签中)) – genesis32
此外,您可以使用QMenu,而不是QPushButton + QLabel。
// Constructor
setContextMenuPolicy(Qt::CustomContextMenu);
connect(this, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(slotCustomMenu(QPoint)));
// slotCustomMenu(QPoint)
QMenu menu(this);
menu.addAction(this->toolTip());
menu.addAction(this->whatsThis());
menu.exec(QCursor::pos());
- 1. 如何设置QWidget宽度?
- 2. 如何以编程方式在Qt窗口中心设置QWidget?
- 3. 如何用Qt设计器中的QTabWidget替换Qt 4.8 QWidget
- 4. [QT 5.7.1] QWidget的:一个QWidget
- 5. 如何设置onClickListner按钮..?
- 6. Qt QWidget :: setGeomerty
- 7. qt QWidget点击
- 8. 中央QWidget [Qt]
- 9. 在Qt中放置按钮
- 10. QT - 如何禁用按钮
- 11. 设置按钮
- 12. Qt QWidget :: minimumSizeHint延迟
- 13. 如何在Qt中打印QWidget?
- 14. 浮动在QWidget上的按钮?
- 15. 如何重新设置提交按钮?
- 16. 如何并排设置2个按钮
- 17. 如何设置按钮不可移动?
- 18. 如何设置按钮颜色
- 19. 如何设置UIControlStateSelected的按钮图像
- 20. 如何设置按钮隐形android
- 21. 如何将HTML块设置为按钮?
- 22. 如何设置按钮上的图像
- 23. 如何设置按钮的亮度?
- 24. 如何在Android中设置按钮?
- 25. 如何设置按钮样式?
- 26. 如何设置按钮的大小?
- 27. 如何在按钮上设置回调?
- 28. 如何为按钮设置UIEdgeinset的值
- 29. 如何设置按钮的大小Xamarin
- 30. 如何设置文本长度按钮
看看'Qt :: WindowContextHelpButtonHint'标志。 – vahancho