Получение элемента из QTableWidget

160
08 июля 2019, 06:50

QTableWidgetУсловие: Создать квадратную матрицу. Матрица должна содержать слова из 4х букв английского алфавита. Из каждого слова удалить все гласные буквы. На основе измененной матрицы сформировать массив, состоящий из размеров строк матрицы, который необходимо упорядочить по убыванию.

Не могу понять каким образом реализовать удаление гласных букв в QtableWidget (желательно по кнопке), буду благодарен за любые наводки!

#include "mainwindow.h"
#include "ui_mainwindow.h"
int elements;
QString alphavit = "abcdefghijklmnopqrstuvwxyz";
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}
MainWindow::~MainWindow()
{
    delete ui;
}
void MainWindow::on_pushButton_start_clicked()
{
    QString line;
    elements = ui->lineEdit->text().toInt();
    if (elements >= 2 && elements <= 5) {
        ui->tableWidget->setRowCount(elements);
        ui->tableWidget->setColumnCount(elements);
        for (int i = 0; i < elements; i++)
        {
            for (int j = 0; j < elements; j++)
            {
                ui->tableWidget->setItem(i, j, new QTableWidgetItem(""));
            }
        }
    }

    else {
        ui->tableWidget->setRowCount(0);
        ui->tableWidget->setColumnCount(0);
        ui->label->setText("Размер матрицы должен быть от 2 до 5");
    }
}

void MainWindow::on_pushButton_random_clicked()
{
    QString end = "";
    int r;
    QString simv;
    for (int i=0; i < elements; i++)
    {
        for (int j=0; j < elements; j++)
        {
            for (int k = 0; k < 4; k++) {
                r = rand() % 26;
                simv = alphavit.at(r);
                end = end + simv;
            }
            QTableWidgetItem* item = new QTableWidgetItem (end, 10);
            ui->tableWidget->setItem(i,j,item);
            end.clear();
        }
    }
}
void MainWindow::on_tableWidget_cellChanged(int row, int column)
{
    QString s = ui->tableWidget->item(row, column)->text();
    if (s.isEmpty()) return;
    if (!alphavit.contains(s.at(0))) {
        ui->label->clear();
        ui->label->setText("Вводите только английские слова");
        QTableWidgetItem* item = new QTableWidgetItem ("", 10);
        ui->tableWidget->setItem(row,column,item);
        return;
    }
    if (!(s.length() == 4)) {
        ui->label->clear();
        ui->label->setText("Вводите только 4-х буквенные английские слова");
        QTableWidgetItem* item = new QTableWidgetItem ("", 10);
        ui->tableWidget->setItem(row,column,item);
        return;
    }
}
READ ALSO
Присваивание массива

Присваивание массива

Вопрос в следующем: если присваивать в цикле:

134
создание сервиса с помощью Java SPI

создание сервиса с помощью Java SPI

Необходимо сделать расширяемое за счет плагинов приложениеДля создания подобной системы проделал следующие шаги:

111
Как изменит background правильно?

Как изменит background правильно?

За ранее я извиняюсь, Я не силён на русском языкеЯ создаю приложения

134