在對話框中,我有一個QLineEdit和一個按鈕。我想在按下按鈕時啓用QLineEdit的工具提示(在其中或在其下)。請給我一個代碼片段。QT - 如何在QLineEdit上應用QToolTip
1
A
回答
4
下面是一個簡單的例子:
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(QWidget* parent = 0) : QWidget(parent)
{
QVBoxLayout* layout = new QVBoxLayout(this);
edit = new QLineEdit(this);
layout->addWidget(edit);
showButton = new QPushButton("Show tool tip", this);
layout->addWidget(showButton);
hideButton = new QPushButton("Hide tool tip", this);
layout->addWidget(hideButton);
connect(showButton, SIGNAL(clicked(bool)), this, SLOT(showToolTip()));
connect(hideButton, SIGNAL(clicked(bool)), this, SLOT(hideToolTip()));
}
public slots:
void showToolTip()
{
QToolTip::showText(edit->mapToGlobal(QPoint()), "A tool tip");
}
void hideToolTip()
{
QToolTip::hideText();
}
private:
QLineEdit* edit;
QPushButton* showButton;
QPushButton* hideButton;
};
正如你所看到的,有沒有簡單的方法,只是使一些小部件的工具提示。您必須提供全球座標QToolTip::showText
。
另一種方法是自己創建一個QHelpEvent
並使用QCoreApplication::postEvent
發佈此事件。這樣,您可以使用QWidget::setToolTip
指定要顯示在窗口小部件中的文本。不過,你仍然需要提供全局座標。
我真的很關心你爲什麼要這樣做,因爲工具提示只有在你要求「什麼是這個」信息時,只有當你將鼠標懸停時,纔會顯示或。它看起來像糟糕的設計使用它的東西。如果你想給用戶留言,爲什麼不用QMessageBox
?
2
如果您需要QLineEdit的工具提示,那麼問題是什麼?只需設置:
myLineEdit->setToolTip("Here is my tool tip");
但如果你只需要表現出一些文字一些button
按下該按鈕之後,這裏的另一種解決方案:創建插槽,例如on_myBytton_clicked()
並將其連接到您的按鈕。在插槽中執行setText()函數,您的文本位於窗體上的QLabel
,QTextEdit
等窗口小部件上。
希望它有幫助。
相關問題
- 1. Qt - 如何在矩形上應用QToolTip
- 2. Qt 4.5 Focus在QLineEdit上不起作用
- 3. qtooltip在單行顯示句子qt
- 4. QT Creator QlineEdit
- 5. 在QlineEdit上的Qt KeyPress事件
- 6. Qt - 如何在QLineEdit中做上標和下標?
- 7. 在Qt中定製QlineEdit
- 8. 如何在用戶點擊Qt中的QLineEdit時更改QLineEdit的文本?
- 9. 如何處理Qt中QLineEdit上下文菜單中的動作?
- 10. Qt:同步QLineEdit和QTextEdit
- 11. 如何在QLineEdit中使用std :: string?
- 12. 在Qt中獲取keyPressEvent在QLineEdit中
- 13. 在Qt中設置QLineEdit焦點
- 14. 如何在窗口上顯示QLineEdit?
- 15. 如何在Qt中獲得QLineEdit的Click事件?
- 16. 實時更改qt應用程序的qlineedit中的文本
- 17. Qt初學者:QLineEdit和QTextEdit的基類
- 18. Qt設置QLineEdit的背景顏色
- 19. 將參數傳遞給QLineEdit的eventFilter Qt
- 20. QLineEdit onVisible()導致QT調試崩潰
- 21. Qt QLineEdit紅寶石自定義驗證
- 22. Qt - 如何改變QLineEdit中佔位符的方向?
- 23. 如何從Qt Creator GUI中的QLineEdit獲取輸入?
- 24. 如何將圖標放到QLineEdit上?
- 25. 如何自動生成QLineEdit-QCompleter上限
- 26. 如何使用QDataWidgetMapper與QLineEdit的
- 27. QLineEdit無法在Qt中調用SetText()後撤消
- 28. QLineEdit佔位符文本在Qt 4.6.3中不起作用
- 29. QLineEdit和Escape Signal
- 30. 如何使用Qt-Creator在OSX Mountain Lion上設置調試Qt應用程序?
謝謝。我想使用它來告訴用戶QLineEdit將被填充CapsLock ON狀態(用於密碼字段)。 有兩個問題:1)爲什麼如果我不在.cpp和.h文件中分開這個類定義,它會導致鏈接器錯誤(某些vtable問題)?以及如何在一個類中分別調用多個QToolTips?我看到你使用了你使用的靜態函數。 – Narek 2010-06-10 16:06:52
1:可能是因爲你沒有'#include'這個moc文件。參見http://stackoverflow.com/questions/3001615/qt-moc-with-implementations-inside-of-header-files/ 2:我不太瞭解你的問題。你的意思是一次顯示多個工具提示嗎?這是不可能的。 – Job 2010-06-10 18:57:37
非常感謝您發佈的解決方案。 – Tracy 2011-05-02 02:29:42