@@ -60,6 +60,19 @@ CAddressCompleter::CAddressCompleter(QWidget *parent)
6060 , m_maxVisibleItems(8 )
6161 , m_isCompleterVisible(false )
6262{
63+ m_szEnter = tr (" Enter a website URL or search content ......" );
64+ m_szLineEditToolTip = m_szEnter + " \n\n "
65+ + tr (" Enter key: Apply current url" );
66+
67+ m_szListWidgetToolTip += tr (" Enter key: Apply current item" ) + " \n " ;
68+ m_szListWidgetToolTip += tr (" Tab key: Apply current item" ) + " \n " ;
69+ m_szListWidgetToolTip += tr (" Esc Key: Exit address completer" ) + " \n " ;
70+ m_szListWidgetToolTip += tr (" Upper arrow key: Select previous item" ) + " \n " ;
71+ m_szListWidgetToolTip += tr (" Down arrow key: Select next item" );
72+
73+ m_szLineEditToolTipShow = m_szEnter + " \n\n " + m_szListWidgetToolTip;
74+ setToolTip (m_szListWidgetToolTip);
75+
6376 setupUI ();
6477
6578 // 设置搜索延迟定时器(300ms防抖动)
@@ -122,16 +135,19 @@ void CAddressCompleter::attachToLineEdit(QLineEdit *lineEdit)
122135{
123136 if (m_pLineEdit) {
124137 m_pLineEdit->removeEventFilter (this );
138+ m_pLineEdit->setToolTip (m_szOldLineEditToolTip);
125139 }
126140
127141 m_pLineEdit = lineEdit;
128142 if (m_pLineEdit) {
143+ m_szOldLineEditToolTip = m_pLineEdit->toolTip ();
144+ m_pLineEdit->setToolTip (m_szLineEditToolTip);
129145 m_pLineEdit->installEventFilter (this );
130146 connect (m_pLineEdit, &QLineEdit::textEdited,
131147 this , &CAddressCompleter::onTextChanged);
132148
133149 // 设置提示文本
134- m_pLineEdit->setPlaceholderText (tr ( " Enter a website URL or search content ...... " ) );
150+ m_pLineEdit->setPlaceholderText (m_szEnter );
135151 }
136152}
137153
@@ -152,12 +168,14 @@ bool CAddressCompleter::eventFilter(QObject *watched, QEvent *event)
152168 // qDebug(log) << Q_FUNC_INFO << keyEvent;
153169 switch (keyEvent->key ()) {
154170 case Qt::Key_Down:
171+ case Qt::Key_PageDown:
155172 if (m_isCompleterVisible) {
156173 moveToNextItem ();
157174 return true ;
158175 }
159176 break ;
160177 case Qt::Key_Up:
178+ case Qt::Key_PageUp:
161179 if (m_isCompleterVisible) {
162180 moveToPreviousItem ();
163181 return true ;
@@ -273,8 +291,10 @@ void CAddressCompleter::performSearch()
273291 url,
274292 i.icon
275293 );
276-
277- m_pListWidget->setItemWidget (item, completerItem);
294+ if (completerItem) {
295+ completerItem->setToolTip (title + " \n\n " + toolTip ());
296+ m_pListWidget->setItemWidget (item, completerItem);
297+ }
278298 item->setData (Qt::UserRole, url);
279299
280300 addedUrls.insert (url);
@@ -426,6 +446,7 @@ void CAddressCompleter::showCompleter()
426446 return ;
427447 }
428448
449+ m_pLineEdit->setToolTip (m_szLineEditToolTipShow);
429450 updateCompleterPosition ();
430451
431452 // 动画显示
@@ -462,6 +483,8 @@ void CAddressCompleter::hideCompleter()
462483
463484 qDebug (log) << Q_FUNC_INFO << " end" ;
464485
486+ m_pLineEdit->setToolTip (m_szLineEditToolTip);
487+
465488 // 动画隐藏
466489 QRect startRect = geometry ();
467490 QRect endRect = geometry ();
0 commit comments