toolTip global ausschalten

Alles rund um die Programmierung mit Qt
Antworten
topek
Beiträge: 17
Registriert: 8. September 2006 11:00

toolTip global ausschalten

Beitrag von topek »

Hallo,
ich bin gerade dabei ein Programm zu erstellen. Würde mich stark interessieren wie ich global in Qt toolTip(s) auschalten kann. Stell dich vor, du hast ein Programm und in Hilfe kannst du die toolTips ausschalten und einschalten, global für alle widgets. Geht das?

Schöne Grüße
topek
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Hi, soweit ich weiß nicht. Du kannst nur event reimplementieren und dann bei ja ToolTips anzeigen und bei nein eben nicht. Ich würde aber auch eine andere Lösung suchen, vielleicht kennt da jmd. doch die nötige Funktion dafür!?
topek
Beiträge: 17
Registriert: 8. September 2006 11:00

Beitrag von topek »

FlorianBecker hat geschrieben:Hi, soweit ich weiß nicht. Du kannst nur event reimplementieren und dann bei ja ToolTips anzeigen und bei nein eben nicht. Ich würde aber auch eine andere Lösung suchen, vielleicht kennt da jmd. doch die nötige Funktion dafür!?
Hallo,
könntest du etwas näher (Rahmen) für so ein Event schreiben und was du darunter verstehst?

Schöne Grüße
topek
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

In der Dokumentation findest du es hier:
http://doc.trolltech.com/4.2/qwidget.html#event

etwas ala

Code: Alles auswählen

bool MyWidget::event( QEvent *event ) {

  if ( event -> type() == QEvent::ToolTip ) {

    /* tooltip abhandeln */
    return true;
  }
  return QWidget::event( event );
}
topek
Beiträge: 17
Registriert: 8. September 2006 11:00

Beitrag von topek »

FlorianBecker hat geschrieben:In der Dokumentation findest du es hier:
http://doc.trolltech.com/4.2/qwidget.html#event

etwas ala

Code: Alles auswählen

bool MyWidget::event( QEvent *event ) {

  if ( event -> type() == QEvent::ToolTip ) {

    /* tooltip abhandeln */
    return true;
  }
  return QWidget::event( event );
}
Nicht lachen, aber wo soll ich den code platzieren? in main.cpp?


Ich habe jetzt schnell mit QtDesigner eine GUI erstellt:
http://img100.imageshack.us/my.php?image=widgetuw8.png

Tooltips sind in der test.ui Datei drin:

Code: Alles auswählen

<ui version="4.0" >
 <author></author>
 <comment></comment>
 <exportmacro></exportmacro>
 <class>MainWindow</class>
 <widget class="QMainWindow" name="MainWindow" >
  <property name="geometry" >
   <rect>
    <x>0</x>
    <y>0</y>
    <width>198</width>
    <height>152</height>
   </rect>
  </property>
  <property name="windowTitle" >
   <string>MainWindow</string>
  </property>
  <widget class="QWidget" name="centralwidget" >
   <layout class="QGridLayout" >
    <property name="margin" >
     <number>9</number>
    </property>
    <property name="spacing" >
     <number>6</number>
    </property>
    <item row="0" column="0" >
     <layout class="QVBoxLayout" >
      <property name="margin" >
       <number>0</number>
      </property>
      <property name="spacing" >
       <number>6</number>
      </property>
      <item>
       <widget class="QLineEdit" name="lineEdit" >
        <property name="toolTip" >
         <string>Linedit toolTip</string>
        </property>
       </widget>
      </item>
      <item>
       <layout class="QHBoxLayout" >
        <property name="margin" >
         <number>0</number>
        </property>
        <property name="spacing" >
         <number>6</number>
        </property>
        <item>
         <widget class="QLabel" name="label" >
          <property name="toolTip" >
           <string>TextLabel toolTip</string>
          </property>
          <property name="text" >
           <string>TextLabel</string>
          </property>
         </widget>
        </item>
        <item>
         <widget class="QPushButton" name="pushButton" >
          <property name="toolTip" >
           <string>PushButton toolTip</string>
          </property>
          <property name="text" >
           <string>PushButton</string>
          </property>
         </widget>
        </item>
       </layout>
      </item>
     </layout>
    </item>
   </layout>
  </widget>
  <widget class="QMenuBar" name="menubar" >
   <property name="geometry" >
    <rect>
     <x>0</x>
     <y>0</y>
     <width>198</width>
     <height>21</height>
    </rect>
   </property>
  </widget>
  <widget class="QStatusBar" name="statusbar" />
 </widget>
 <pixmapfunction></pixmapfunction>
 <resources/>
 <connections/>
</ui>
Die main.cpp sieht so aus:

Code: Alles auswählen

#include "ui_test.h"
#include <QDialog>
#include <QtGui/QtGui>
#include <QMainWindow>
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
app.setQuitOnLastWindowClosed(true);
QMainWindow *mainWindow = new QMainWindow;
Ui::MainWindow ui;
ui.setupUi(mainWindow);
mainWindow->show();
mainWindow->showMaximized();
return app.exec();
}
und application.pro sieht so aus:

Code: Alles auswählen

######################################################################
# Automatically generated by qmake (2.00a) Wed 15. Nov 13:31:29 2006
######################################################################

TEMPLATE = app
TARGET += 
DEPENDPATH += .
INCLUDEPATH += .

# Input
FORMS += test.ui
SOURCES += main.cpp
Könntest du mir bitte am diesen einfachen Beispiel zeigen wie ich deinen Code und in welche Datei einsetzen kann?

Und wie würde das Ausschalten der toolTips gehen, wenn ich nur bestimmte und nicht alle toolTips ausschalten möchte?


Schöne Grüße
topek
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Naja, dann wirst du die ToolTips nach irgendeinem Schema Filtern müssen.

Also ich kann dir momentan nur sagen, dass du deine Ui Datei erstellen solltest in einer extra Datei und davon ableiten solltest und dort reimplementierst du den Code Part dann eben von QWidget.

Ich kann dir das jetzt nicht fertig machen, dafür fehlt mir einfach die Zeit jetzt.
topek
Beiträge: 17
Registriert: 8. September 2006 11:00

Beitrag von topek »

Hallo,
trotzdem vielen dank für super schnelle Antworten :)
Abgesehen von partieller Abschaltung, könntest du am meinen Beispiel zeigen wie ich global (also alle) toolTips ausschalten kann?
Oder zumindest sagen, in welche datei ich mit deinem Code rumspielen kann? cpp, pro oder ui Datei (ui glaube ich kaum :)

Es muss nicht jetzt oder heute sein :)
DANKE !

Schöne Grüße
topek
Antworten