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
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);