Jak odwołać sie do widgetu z innego obiektu?

0

Potrzebuje odwołać sie do widgetu(powiedzmy labelAsdf) z obiektu nie będącego jego rodzicem. W rodzimej klasie zrobiłbym to tak: ui->labelAsdf-> ... Myślałem o zaprzyjaźnieniu dwóch klas, lecz to wymagałoby stworzenia nowego obiektu MainWindow a tego nie chce. Próbowałem przesyłać do funkcji pointer na ui, lecz nie działało to prawidłowo. Co mogę zrobić?

0

1.Użyć mechanizmu signal/slot
2.Dodać w konstruktorze wskaźnik na ten widget do którego chce się odwoływać

Tak btw,zapodaj kod tych klas,bo jasnowidzami nie jesteśmy

0

mainwindow.cpp:

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include "xmlh.h"

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    XmlH *xmldoc = new XmlH();

    QTableWidget *wi = ui->tabelaKsiazki;

    xmldoc->pokazTabele(0,5, wi);

    ui->tabelaKsiazki->setColumnWidth(0, 377);
    ui->tabelaKsiazki->setColumnWidth(1, 150);
    ui->tabelaKsiazki->setColumnWidth(2, 50);
    ui->tabelaKsiazki->setColumnWidth(3, 100);

}
 ciach

xmlh.cpp:

ciach
void XmlH::pokazTabele(int co, int rows, QTableWidget *ptr)
{
 ciach
  ptr->setItem(i,0, new QTableWidgetItem("foo"));
 ciach
}
0

Hm przekazujesz widzę wskaźnik do XmlH::pokazTabele...gdzie tu więc problem?Btw,definiowanie tego *wi jest zbyteczne,spokojnie możesz zrobić tak:

xmldoc->pokazTabele(0,5, ui->tabelaKsiazki);

1 użytkowników online, w tym zalogowanych: 0, gości: 1