Ziehen und Ablegen von 2 Listwidgets, aber Ändern des Texts nach dem Ablegen in 2nd ListWidget

the_learnist

Geben Sie hier die Bildbeschreibung ein

Das 'Land'-QListwidget wird mit Ländernamenelementen gefüllt. Wenn der Benutzer dieses Element zieht und es in Großbuchstaben QListWidget ablegt, sollte mir der Name seines Kapitals angezeigt werden, dh der Elementtext sollte sich in Großbuchstaben QListWidget ändern.

Beispiel: Ein Element mit dem Namen "Russland" im Länderlisten-Widget sollte nach dem Ziehen und Ablegen in "Moskau" umbenannt werden.

Bisher habe ich diesen Code geschrieben, um Drag & Drop zu ermöglichen.

ui->country_listwidget->setDragEnabled(true);

ui->capital_listwidget->setAcceptDrops(true);

ist das in QT möglich?

eyllanesc

Eine einfache Lösung besteht darin, zwei Rollen zu erstellen, in denen die einzelnen Informationen gespeichert sind, und dann einen Delegaten zu verwenden, um den Text je nach Ansicht anzuzeigen:

#include <QtWidgets>

enum CustomRoles {
    CounrtyRole = Qt::UserRole,
    CapitalRole
};

class DisplayDelegate: public QStyledItemDelegate{
public:
    DisplayDelegate(int displayRole=Qt::DisplayRole, QObject *parent=nullptr)
        :QStyledItemDelegate(parent), m_displayRole(displayRole){}
    int getDisplayRole() const{
        return m_displayRole;
    }
    void setDisplayRole(int value){
        m_displayRole = value;
    }
protected:
    void initStyleOption(QStyleOptionViewItem *option, const QModelIndex &index) const{
        QStyledItemDelegate::initStyleOption(option, index);
        QVariant value = index.data(m_displayRole);
        if (value.isValid() && !value.isNull()) {
            option->features |= QStyleOptionViewItem::HasDisplay;
            option->text = displayText(value, option->locale);
        }
    }
private:
    int m_displayRole;
};

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QListWidget *country_lw = new QListWidget;
    country_lw->setItemDelegate(new DisplayDelegate(CounrtyRole));
    QListWidget *capital_lw = new QListWidget;
    capital_lw->setItemDelegate(new DisplayDelegate(CapitalRole));

    country_lw->setDragEnabled(true);
    capital_lw->setAcceptDrops(true);

    QListWidgetItem *item1 = new QListWidgetItem;
    item1->setData(CounrtyRole, "Country1");
    item1->setData(CapitalRole, "Capital1");
    country_lw->addItem(item1);
    QListWidgetItem *item2 = new QListWidgetItem;
    item2->setData(CounrtyRole, "Country2");
    item2->setData(CapitalRole, "Capital2");
    country_lw->addItem(item2);
    QListWidgetItem *item3 = new QListWidgetItem;
    item3->setData(CounrtyRole, "Country3");
    item3->setData(CapitalRole, "Capital3");
    country_lw->addItem(item3);


    QWidget w;
    QHBoxLayout *lay = new QHBoxLayout(&w);
    lay->addWidget(country_lw);
    lay->addWidget(capital_lw);
    w.show();
    return a.exec();
}

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Ändern der Höhe nach dem Ziehen und Ablegen

Nach dem Ziehen und Ablegen des Sortierelements erstellen Sie Duplikate

Deaktivieren Sie das Ziehen und Ablegen des ausgewählten Texts

Das Ziehen und Ablegen von Ag-Grids funktioniert nach dem Sortieren von Zeilen nicht

So aktualisieren Sie Datensätze nach dem Ziehen und Ablegen

Aktualisieren von React-Table-Werten nach dem Ziehen und Ablegen einer Zeile in React Redux

Ziehen und Ablegen von "abgelegten Elementen"

Qt Ziehen und Ablegen von QTreeView

Ziehen und Ablegen von Angular-Material2-Chips mit der ng2-Dragula-Bibliothek

Eingabedatei ziehen und ablegen

Ziehen, ablegen und validieren

Dreieck ziehen und ablegen

Ziehen und Ablegen von Containern mit ng2-dnd (GitHub-Bibliothek)

qt schnelles Ziehen und Ablegen von Elementen beim Ziehen

JSON-Datei kann nach dem Ziehen und Ablegen in Xcode - Xcode / Swift nicht gelesen werden

Richten Sie die PictureBox nach dem Ziehen und Ablegen an den Schaltflächen aus

Speichern Sie die Textansichtsposition nach dem Ziehen und Ablegen mit com.jmedeisis.draglinearlayout.DragLinearLayout

So stellen Sie den Fokus in der Anwendung nach dem Ziehen und Ablegen in das Raster wieder her

Die Ausrichtung der TabPage-Titel ist nach dem Ziehen und Ablegen falsch

Tutorial zum Ziehen und Ablegen von Elementen von UITableView nach UITableView

Ziehen und Sortieren/Ablegen von div-Elementen nach Klasse oder ID

Verhindern von eventClick-Trigger beim Ziehen und Ablegen von Ereignissen mithilfe des Winkelkalenders

Bild überall ziehen und ablegen

Schwierigkeiten beim Ziehen und Ablegen

Ziehen und Ablegen auf QPlainTextBox

SwiftUI - Kreise ziehen und ablegen

Wie kann ich nach dem Ziehen und Ablegen des Recyclerview-Elements die aktualisierte Position eines Listenelements bei der Onbind-Methode eines Adapters angeben?

Ziehen und Ablegen von Elementen ablegen lassen, während sie noch ziehbar sind

Das Ziehen und Ablegen von QTreeWidgetItem funktioniert nicht ordnungsgemäß

TOP Liste

  1. 1

    TypeAhead.js zeigt keine Ausgangsschienen an?

  2. 2

    Wie lade ich eine Datei herunter, ohne den Typ oder Dateinamen zu kennen?

  3. 3

    So verschieben Sie ein Bild in Flutter/Dart mit einem Draggable

  4. 4

    Pandas rufen einen Wert basierend auf dem Index ab

  5. 5

    Unity Build-Fehler: Der Name 'EditorUtility' ist im aktuellen Kontext nicht vorhanden

  6. 6

    Wie kann ich eine verschachtelte Schleife mit lapply in R ersetzen?

  7. 7

    Interpolieren Sie mit Python die 2D-Matrix entlang der Spalten

  8. 8

    numpy: Berechnen Sie die Ableitung der Softmax-Funktion

  9. 9

    Warum funktioniert das Umgebungslicht in diesem Beispiel nicht?

  10. 10

    spring-data-jpa: ORA-01795: Die maximale Anzahl von Ausdrücken in einer Liste beträgt 1000

  11. 11

    Wie verwende ich Format-Table ohne Abschneiden von Werten?

  12. 12

    MongoDB eingebettetes Dokument unterscheiden und filtern

  13. 13

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  14. 14

    Wie vermeide ich, dass die gesamte App neu geladen wird, wenn Nav.Link von React-Bootstrap verwendet wird?

  15. 15

    Aktualisieren des Werts im Json-Objekt in Python

  16. 16

    Wie aktualisiere ich ein Feld in einer Raumdatenbank mit einem Repository und einem Ansichtsmodell?

  17. 17

    Python gibt einen Fehler aus, dass eine Datei nicht vorhanden ist, wenn dies eindeutig der Fall ist

  18. 18

    Warum funktioniert Phantomjs nicht mit dieser Site?

  19. 19

    Docker bleibt beim Ausführen von time.sleep (1) in einer Python-Schleife hängen

  20. 20

    Überprüfen Sie, ob der ausgewählte Wert 'YES' ist, wenn ja, aktivieren Sie ein Steuerelement mit Javascript

  21. 21

    Deklarieren einer nicht initialisierten Variablen in der Klassendefinition in Python

heißlabel

Archiv