在像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. 如何改变tittleBar按钮像关闭和最小化Qt中的按钮QWidget
- 2. 如何设置QWidget宽度?
- 3. 如何以编程方式在Qt窗口中心设置QWidget?
- 4. 如何用Qt设计器中的QTabWidget替换Qt 4.8 QWidget
- 5. [QT 5.7.1] QWidget的:一个QWidget
- 6. 如何设置onClickListner按钮..?
- 7. Qt的按钮如何设置内部边界
- 8. 如何使用样式表设置Qt按钮的图标?
- 9. 如何在Qt按钮上设置标签的字体大小?
- 10. qt QWidget点击
- 11. Qt QWidget :: setGeomerty
- 12. QT paintEvent为QWidget
- 13. 中央QWidget [Qt]
- 14. 在Qt中放置按钮
- 15. QT - 如何禁用按钮
- 16. 如何设计QWidget?
- 17. 如何设置QWidget背景色?
- 18. 如何在QGraphicsWidget中设置Qwidget?
- 19. 如何设置QWidget的用户数据?
- 20. 由Qt设计师创建的QWidget未被识别为QWidget
- 21. 如何设置按钮位置?
- 22. 如何设置按钮位置
- 23. 如何设置j按钮的位置?
- 24. Qt QWidget :: minimumSizeHint延迟
- 25. 设置按钮
- 26. 如何在Qt中打印QWidget?
- 27. 浮动在QWidget上的按钮?
- 28. 如何设置按钮的大小Xamarin
- 29. 如何设置按钮点击?
- 30. Unity如何将GUITexture设置为按钮?
看看'Qt :: WindowContextHelpButtonHint'标志。 – vahancho