Приветствую.
Возникла такая проблема. Необходимо, чтобы при наводке курсора на элемент комбобокса сразу же появлялась подсказка(описание элемента).
К сожалению необходимо использовать только 3-ю версию QT. Есть метод QToolTip::tip, но напрямую использовать его нельзя.
Создал отдельный класс, для обёртки:
C++ (Qt)
class DynamicTip : public QToolTip
{
public:
DynamicTip( QWidget * parent );
void getTool(const QRect &req, const QString &str);
protected:
void maybeTip( const QPoint & );
};
...
void DynamicTip::getTool(const QRect &req, const QString &str)
{
QToolTip::tip(req,str);
}
основной класс:
C++ (Qt)
class Fileexp : public QDialog
{
Q_OBJECT
public:
Fileexp(QWidget *parent = 0, const char *name = 0 );
private slots:
void newSlot(int i);
private:
QComboBox *combo;
DynamicTip * t;
};
где в конструкторе:
C++ (Qt)
...
combo = new QComboBox( FALSE, this, "combo" );
...
combo->insertItem(tr("tag1"));
combo->insertItem(tr("tag2"));
...
connect(combo, SIGNAL( highlighted(int) ), this, SLOT(newSlot(int)));
слот:
C++ (Qt)
void Fileexp::newSlot(int i)
{
t = new DynamicTip( this );
QRect r(combo->x(),combo->y(),combo->width(),combo->height());
if(i==0) { t->getTool(r,tr("tag1_str")); }
if(i==1) { t->getTool(r,tr("tag2_str")); }
...
}
И проблема в том, что сама-то подсказка работает, но не при наводе на элемент курсором, а уже при выборе его. А необходимо, чтобы перед выбором на каждый элемент появлялась подсказка с описанием. Может кто подскажет где накосячил? Заранее спасибо.
Полные исходники в прикреплённом файле.