Anzeige:
Ergebnis 1 bis 15 von 15

Thema: Button festsetzen

  1. #1
    Registrierter Benutzer
    Registriert seit
    30.06.2004
    Beiträge
    15

    Button festsetzen

    hallo

    ich habe auf eine tabelle einen button gesetzt der ein neues fenster öffnet. dieser bewegt sich beim scrollen aber immer mit und das war eigentlich nicht so gedacht. gibt es vllt die möglichkeit diesen button auf dem header der tabelle festzusetzen?
    oder kann man auch mit einem doppelklick auf den header ein fenster öffnen?
    "Dem Blöden fährt bei jedem sinnvollen Wort der Schrecken in die Glieder"

  2. #2
    Registrierter Benutzer Avatar von Boron
    Registriert seit
    07.01.2002
    Beiträge
    827
    Was hat ein Button in einer Tabelle verloren, quasi als Teil davon?
    Eine absolut logische Konsequenz ist, wie du bemerkt hast, dass der Button sich beim Scrollen der Tabelle bewegt.

    Ich würde dann doch gänzlich anders Layouten.
    Setze den Button doch über die Tabelle, oder daneben.
    Gruß Boron (der sich oft wegen mieser Rechtschreibung anderer die Augen reiben muss)

    LINUX IS LIKE AN INDIAN TENT: NO GATES, NO WINDOWS AND AN APACHE INSIDE!
    Hardware Monitoring unter Linux -> http://santafu.sourceforge.net (Temperaturen, Lüfterdrehzahlen und Spannungen)

  3. #3
    Registrierter Benutzer
    Registriert seit
    30.06.2004
    Beiträge
    15
    hmm ja nur weiß ich nicht wie ich es anders machen sollte
    ich hatte mir schon überlegt einen doppelklick auf den header zu der tabelle zu machen um ein neues fenster zu öffnen .... nur weiß ich nicht wie ich diese bewerkstelliegen soll
    "Dem Blöden fährt bei jedem sinnvollen Wort der Schrecken in die Glieder"

  4. #4
    Registrierter Benutzer Avatar von Stanislaus
    Registriert seit
    04.07.2003
    Ort
    Mönchengladbach
    Beiträge
    80
    Darf man mal so ganz blöd fragen womit Du die GUI bastelst?

    Bis neulich ...

  5. #5
    Registrierter Benutzer
    Registriert seit
    30.06.2004
    Beiträge
    15
    ich bastel es einfach mit denm Quelltext also einfachem Text Editor und kompiliere mit der Konsole
    "Dem Blöden fährt bei jedem sinnvollen Wort der Schrecken in die Glieder"

  6. #6
    Registrierter Benutzer Avatar von Stanislaus
    Registriert seit
    04.07.2003
    Ort
    Mönchengladbach
    Beiträge
    80
    Ich wollte nicht wissen, wie Du Deinen Quelltext schreibst, sondern welches GUI Toolkit unter welchem Betriebssystem Du einsetzt.

    Bis neulich ...

  7. #7
    Registrierter Benutzer
    Registriert seit
    30.06.2004
    Beiträge
    15
    ich arbeite unter suse Linux
    und schreibe es in QT aber ich verwende kein spezielles Toolkit
    "Dem Blöden fährt bei jedem sinnvollen Wort der Schrecken in die Glieder"

  8. #8
    Registrierter Benutzer Avatar von Stanislaus
    Registriert seit
    04.07.2003
    Ort
    Mönchengladbach
    Beiträge
    80
    QT ist das "spezielle Toolkit".
    Und mit QT kenne ich mich nicht wirklich aus, so daß ich Dir wohl nicht weiterhelfen kann.

    Bis neulich ..

  9. #9
    Registrierter Benutzer
    Registriert seit
    30.06.2004
    Beiträge
    15
    hmm ok^^
    kann mir vllt jemand sagen wie ich das mit dem doppelklick auf den header der tabelle bewerkstelligen kann?
    oder ob das überhaupt umzusetzen ist?
    "Dem Blöden fährt bei jedem sinnvollen Wort der Schrecken in die Glieder"

  10. #10
    Registrierter Benutzer Avatar von Boron
    Registriert seit
    07.01.2002
    Beiträge
    827
    Code:
    QTable::doubleClicked ( int row, int col, int button, const QPoint & mousePos )
    Dieses Signal wird bei einem Doppelklick emittiert.
    Lies mal in der Qt API-Doku nach, sehr hilfreich das ganze .
    Gruß Boron (der sich oft wegen mieser Rechtschreibung anderer die Augen reiben muss)

    LINUX IS LIKE AN INDIAN TENT: NO GATES, NO WINDOWS AND AN APACHE INSIDE!
    Hardware Monitoring unter Linux -> http://santafu.sourceforge.net (Temperaturen, Lüfterdrehzahlen und Spannungen)

  11. #11
    Registrierter Benutzer
    Registriert seit
    30.06.2004
    Beiträge
    15
    ja danke
    ich hatte mri imme nur die QHeader in der doc angesehen^^
    und hatte es nur geschafft das es sich mit einem klick aber mit keinem doppelklick öffnet
    "Dem Blöden fährt bei jedem sinnvollen Wort der Schrecken in die Glieder"

  12. #12
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Das doubleClicked Signal von QTable ist aber für den Bereich des Tables.

    Doppelklicks auf den TableHeader könnte man mit einem Eventfilter am Header bekommen oder in dem man einen Klasse von QTableHeader ableitet, dort mouseDoubleClickEvent() implementiert und eine Instanz davon am QTable setzt.

    Man kann schon auch einen Button fix am Table Widget plazieren, in dem man als Widetparent des Buttons den Viewport des Tables benutzt, aber das sieht sicher ziemlich eigenartig aus und verdeckt immer einen Teil des Table Inhalts.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  13. #13
    Registrierter Benutzer
    Registriert seit
    30.06.2004
    Beiträge
    15
    danke für die ausführliche hilfe
    nur könntest du mir vllt einen beispiel quelltext geben ... ich habe es zwar versucht mit dem ableiten usw aber irgentwie bekomme ich es nicht hin
    natürlich nur wenn es keine umständen amcht
    "Dem Blöden fährt bei jedem sinnvollen Wort der Schrecken in die Glieder"

  14. #14
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Tut mir leid, hab da QTable mit einem anderen Widget verwechselt
    QTable benutzt sogar eine interne private Klasse als Header.

    Vielleicht kannst du es über eine Art Doubleclick Detektor machen, also einen Slot mit dem clicked Signal des Headers verbinden und dann im Slot ein QTime Objekt starten.
    Bei einem weiteren Click dann nachsehen, ob die elapsed() Time <= QApplication::doubleClickIntervall() ist

    Also in etwa so
    Code:
    class DoubleClick : public QObject
    {
        Q_OBJECT
    
    signals:
        void doubleClick(int section);
    public slots:
        void slotClick(int section);
    
    private:
        int m_lastSection;
        QTime m_time;
    };
    Code:
    void DoubleClick::slotClick(int section)
    {
        if (m_lastSection != section)
        {
            m_lastSection = section;
            m_time.restart(;
        }
        else
        {
            if (m_time.elapsed() <= QApplication::doubleClickIntervall())
            {
                emit doubleClick(section);
                m_lastSection = -1; // reset
            }
            else
            {
                m_time.restart();
            }
        }
    }
    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  15. #15
    Registrierter Benutzer
    Registriert seit
    30.06.2004
    Beiträge
    15
    ok danke werde es gleich mal ausprobieren
    "Dem Blöden fährt bei jedem sinnvollen Wort der Schrecken in die Glieder"

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •