Napisałem sobie program (który niby ma rozwiązywać układ równań liniowych) i oparłem go na QTableWIdget (jako że nie za bardzo jeszcze jestem obeznany na modelach i widokach w QT). Problem się pojawia, gdy chcę ustawić zawartość pola run-time. Po prostu nic się nie dzieje i w zasadzie nie wiem dlaczego. Kawałek kodu:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "ortho.h"
#include <iostream>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::changeEvent(QEvent *e)
{
QMainWindow::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}
void MainWindow::on_pushButton_clicked()
{
int size = this->ui->tableWidget->rowCount();
ublas::matrix<long double> A(size,size);
ublas::vector<long double> b(size);
for (int i = 0; i < size; i++)
for (int j = 0; j < size; j++)
A(i,j) = this->ui->tableWidget->item(i,j)->text().toLongLong(NULL, 10);
std::cout << A << std::endl;
for (int i = 0; i < size; i++)
b(i) = this->ui->tableWidget_3->item(i,0)->text().toLongLong(NULL, 10);
std::cout << b << std::endl;
ublas::vector<long double> x = ortho_solve (A, b);
std::cout << x << std::endl;
for (int i = 0; i < size; i++)
{
QTableWidgetItem item;
QString s = QString::number(x(i), 10);
std::cout << s.toStdString() << std::endl;
item.setTextAlignment(Qt::AlignCenter);
item.setText(s);
item.setTextColor(QColor(0, 255, 0));
this->ui->tableWidget_4->setItem(i, 0, &item);
}
}
void MainWindow::on_lineEdit_textChanged(QString s)
{
int size = s.toInt();
if (size < 1) return;
ui->tableWidget->setRowCount(size);
ui->tableWidget->setColumnCount(size);
ui->tableWidget_3->setRowCount(size);
ui->tableWidget_4->setRowCount(size);
}
Z dokumentacji nie mogę wyczytać co robię źle