Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt
  • Unsolved
Collapse
qtws26_logo

The Qt Event of the Year: Qt World Summit 2026

Save Your Spot >
Brand Logo
  1. Home
  2. International
  3. German
  4. [solved] QTableview in Plugin wird nicht upgedatet
Qt 6.12 LTS is out! See what's new in the release blog

[solved] QTableview in Plugin wird nicht upgedatet

Scheduled Pinned Locked Moved German
2 Posts 1 Posters 2.5k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • ? Offline
    ? Offline
    A Former User
    wrote on last edited by
    #1

    Hallo Miteinander!

    versuche gerade seit 3 Tagen eine Model/View Implementierung innerhalb eines Plugins ans laufen zu bringen, aber klappt nicht - data wird nicht angesprungen :S

    Projekt: einlesen einer csv-Datei und darstellen der Werte in einer Tabelle.

    Ich habe das Demo CdRack (http://developer.qt.nokia.com/groups/qt_german/wiki/Model_View_Tutorial) dazu hergenommen. Wenn ich meine Klassen darin implementiere klappt es. Hab das ganze auch in den Qt Creator portiert wg der ui. Auch dort klappt das update, nachdem ich die Daten eingelesen habe.

    Ok, zu meiner Implementierung im Plugin:

    @PluginDialog::PluginDialog(QWidget *parent, QString parent_id)
    : QMainWindow(parent)
    {
    ui.setupUi(this);
    :
    :
    m_model = new VdOblModel(m_data, this);
    ui.m_view->setModel(m_model);
    ui.m_view->setAlternatingRowColors(true);

    connect(&m_data, SIGNAL(contentsChanged()), this, SLOT(documentWasModified()));
    

    @

    Sieht im funktionierenden Qt Creator CdRack genauso aus:

    @MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
    {
    ui->setupUi(this);
    :
    :
    m_model = new VdOblModel(m_data, this);
    ui->m_view->setModel(m_model);
    ui->m_view->setAlternatingRowColors(true);

    connect(&m_data, SIGNAL(contentsChanged()), this, SLOT(documentWasModified()));
    

    @

    Wenn ich debugge, werden die Daten in beiden Fällen in meinen Datencontainer geschrieben. Aber nur in der CdRack-Version landet man in der data-funktion des Models.

    Um Unterschiede auszuschließen, verwende ich die gleichen Files für das Model, den controller und den Datencontainer in beiden Projekten.

    Mir kommt es so vor, als ob das Model das Signal fürs data nicht bekommt, weil es am falschen Objekt lauscht. Ist im Plugin das Parent ein anderes wie im CdRack?

    Bin echt am verzweifeln ;( ... Hoffe, mir kann jemand weiterhelfen ... Wär suuper!

    Grüße,
    Thomas

    1 Reply Last reply
    0
    • ? Offline
      ? Offline
      A Former User
      wrote on last edited by
      #2

      Hi,

      Problem gefunden ... ein saudummer Anfänger-Fehler ...

      Das ganze hing damit zusammen, dass ich beim laden der csv-Datei ein zweites Controller-Objekt aufgerufen habe, was den Dateipfad dem Plugin bekannt gab. Das hat das einlesen gemacht und den emit gesendet. Da aber das Model auf das andere Controller-Objekt gehört hat, konnte nie ein update der Table gemacht werden ...

      Naja ... aber die 3 Tage waren wenigstens nicht umsonst ... hab dadurch das Model/View-Konzept recht gut verstanden ;)

      Grüße,
      Thomas

      1 Reply Last reply
      0

      • Login

      • Login or register to search.
      • First post
        Last post
      0
      • Categories
      • Recent
      • Tags
      • Popular
      • Users
      • Groups
      • Search
      • Get Qt
      • Unsolved