Необходимо перенести значения из одной таблицы в 1м окне в другую таблицу во 2м окне.
Доброго времени суток.
Появилась необходимость в переносе значения из одной таблицы в 1м окне в другую таблицу во 2м окне. Т.К. я все еще чайник в QT, то нужна помощь. Возможно есть кто знающий как перенести значения с типом string, при этом используя стандартные библиотеки QT. Ниже приведу важные части кода и мои потуги в этом деле.
1Й КЛАСС #include "opisanie.h" #include "mainwindow.h" #include "ui_opisanie.h" #include "ocenka.h" #include "QTableWidgetItem" #include "QMessageBox" #include "QPushButton" #include "qmath.h" #include "center.h" double dopdl = 0; extern double dopdl; Opisanie::Opisanie(QWidget *parent) : QMainWindow(parent), ui(new Ui::Opisanie) { ui->setupUi(this); center = new Center(); ocenka = new Ocenka(); ui->combo2->addItem(""); ui->combo2->addItem("открытая"); ui->combo2->addItem("закрытая"); ui->button4->setEnabled(false); ui->button5->setEnabled(false); ui->button6->setStyleSheet("QPushButton{" "background-color: rgb(150, 255, 150);}"); connect(ui->button1,SIGNAL(clicked(bool)),SLOT(setRows())); connect(ui->button2,SIGNAL(clicked(bool)),SLOT(ustForm())); connect(ui->button3,SIGNAL(clicked(bool)),SLOT(dopDlina())); connect(ui->button4,SIGNAL(clicked(bool)),SLOT(SKOvyt())); connect(ui->button6,SIGNAL(clicked(bool)),ocenka,SLOT(show())); connect(ui->button6,SIGNAL(clicked(bool)),this,SLOT(otkrOkna())); connect(ui->combo2,SIGNAL(currentTextChanged(QString)),SLOT(predPog())); connect(this, SIGNAL(sendText(QString)),ocenka,SLOT(resirvedText(QString))); connect(ui->button5,SIGNAL(clicked(bool)), center, SLOT(show())); connect(this,SIGNAL(sendText2(QString)),center,SLOT(pereslat(QString))); connect(ui->button5,SIGNAL(clicked(bool)),this,SLOT(otkrOkna2())); connect(ui->button5,SIGNAL(clicked(bool)),center,SLOT(setRows2())); connect(this,SIGNAL(sendTablen(QString)),center,SLOT(setColumn(QString))); connect(ui->button5,SIGNAL(clicked(bool)),this,SLOT(otkrOkna3())); } Opisanie::~Opisanie() { delete ui; } void Opisanie::setRows() { QString strR = ui->line1->text(); n = strR.toDouble(); ui->table1->setColumnCount(5); ui->table1->setHorizontalHeaderLabels(QStringList() << "Пункты хода" << "Si, м" << "α'i, °" << "η'i, м" << "L, м"); ui->table1->setColumnWidth(0,80); ui->table1->setColumnWidth(1,70); ui->table1->setColumnWidth(2,70); ui->table1->setColumnWidth(3,70); ui->table1->setColumnWidth(4,50); ui->table1->setRowCount((n*2)-1); ui->table1->setSpan(0, 4, (n*2)-1, 4); } void Opisanie::ustForm() { int sum = 0; int Smax = ui->table1->model()->data(ui->table1->model()->index(1,1)).toInt(); int Smin = ui->table1->model()->data(ui->table1->model()->index(1,1)).toInt(); int amax = ui->table1->model()->data(ui->table1->model()->index(1,2)).toInt(); int amin = ui->table1->model()->data(ui->table1->model()->index(1,2)).toInt(); int nmin = ui->table1->model()->data(ui->table1->model()->index(0,3)).toInt(); int nmax = ui->table1->model()->data(ui->table1->model()->index(0,3)).toInt(); int Li = ui->table1->model()->data(ui->table1->model()->index(0,4)).toInt(); int kk = ui->table1->model()->rowCount(); int none = ui->table1->model()->data(ui->table1->model()->index(0,3)).toInt(); int nposl = ui->table1->model()->data(ui->table1->model()->index(kk-1,3)).toInt(); for (int i=1; i<=((kk-1)/2); i++) { sum += ui->table1->model()->data(ui->table1->model()->index((i*2)-1,1)).toInt(); } for (int z=1; z<=((kk-1)/2); z++) { if (Smax < ui->table1->model()->data(ui->table1->model()->index((z*2)-1,1)).toInt()) Smax = ui->table1->model()->data(ui->table1->model()->index((z*2)-1,1)).toInt(); } for (int k=1; k<=((kk-1)/2); k++) { if (Smin > ui->table1->model()->data(ui->table1->model()->index((k*2)-1,1)).toInt()) Smin = ui->table1->model()->data(ui->table1->model()->index((k*2)-1,1)).toInt(); } for (int f=1; f<=((kk-1)/2); f++) { if (amax < ui->table1->model()->data(ui->table1->model()->index((f*2)-1,2)).toInt()) amax = ui->table1->model()->data(ui->table1->model()->index((f*2)-1,2)).toInt(); } for (int l=1; l<=((kk-1)/2); l++) { if (amin > ui->table1->model()->data(ui->table1->model()->index((l*2)-1,2)).toInt()) amin = ui->table1->model()->data(ui->table1->model()->index((l*2)-1,2)).toInt(); } for (int x=1; x<((kk+1)/2); x++) { if (nmin > ui->table1->model()->data(ui->table1->model()->index(x*2,3)).toInt()) nmin = ui->table1->model()->data(ui->table1->model()->index(x*2,3)).toInt(); } for (int p=1; p<((kk+1)/2); p++) { if (nmax < ui->table1->model()->data(ui->table1->model()->index(p*2,3)).toInt()) nmax = ui->table1->model()->data(ui->table1->model()->index(p*2,3)).toInt(); } int srsum = sum/((kk-1)/2); int proverka1 = abs(none - nposl); QString srsumt = QString::number(srsum); QString sumt = QString::number(sum);; float sumLi = sum/Li; float Li8 = 0.125*Li; if ((sum<=dopdl*1000) && Smax<=350 && Smin>=40 && amax<=180 && amin>=0 && nmin>0 && Li>0) { ui->line2->setText(sumt); ui->line3->setText(srsumt); if (nmax <= Li8 && amax <= 24 && sumLi <= 1.3)//Критерии вытянутости хода { ui->line4->setText("Ход вытянутый"); } else { ui->line4->setText("Ход изогнутый"); } } else { QMessageBox::critical(this, "Ошибка измерений", "Проверьте правильность записи измерений!"); } if (proverka1>25) { QMessageBox::warning(this, "Ошибка измерений", "Расхождение η'1 и η'i превышает" " допустимое значение"); } QString ars = ui->line4->text(); if (ars == "Ход вытянутый") { ui->button4->setEnabled(true); } if (ars != "Ход вытянутый") { ui->button4->setEnabled(false); } if (ars == "Ход изогнутый") { ui->button5->setEnabled(true); } if (ars != "Ход изогнутый") { ui->button5->setEnabled(false); } } void Opisanie::otkrOkna2() { emit sendText2(ui->line1->text()); //emit sendText(ui->table1->text()); } void Opisanie::otkrOkna3() { int kk = ui->table1->model()->rowCount(); for (int p=0; p<((kk+1)/2); p++) { emit sendTablen (ui->table1->model()->data(ui->table1->model()->index(p*2,0)).toString()); } } 2й КЛАСС #include "center.h" #include "ui_center.h" #include "opisanie.h" #include "ocenka.h" //#include Opisanie.n; Center::Center(QWidget *parent) : QDialog(parent), ui(new Ui::Center) { ui->setupUi(this); // ui->setupUi(this); //model = new QStandardItemModel(n, 3, this ); //ui->tableView->setModel(model); //connect(this, SIGNAL(accepted()), SLOT(setRows2())); } //void opiser(Opisanie Ddd){ // Opa = Ddd; //} Center::~Center() { delete ui; } void Center::pereslat(QString str2) { int n = str2.toInt(); ui->table2->setRowCount(n); /*ui->table2->setColumnCount(3); ui->table2->setHorizontalHeaderLabels(QStringList() << "Пункты хода" << "D ц.т. i, м" << "D^2 ц.т. i,м^2"); ui->table2->setColumnWidth(0,80); ui->table2->setColumnWidth(1,70); ui->table2->setColumnWidth(2,70);*/ } void Center::setRows2() { //int n = str2.toInt(); //QString strR = ui->line1->text(); //n = strR.toDouble(); ui->table2->setColumnCount(3); ui->table2->setHorizontalHeaderLabels(QStringList() << "Пункты хода" << "D ц.т. i, м" << "D^2 ц.т. i,м^2"); ui->table2->setColumnWidth(0,80); ui->table2->setColumnWidth(1,70); ui->table2->setColumnWidth(2,70); } void Center::setColumn(QString strn) { int rc = ui->table2->rowCount(); QTableWidgetItem *itemr = new QTableWidgetItem(); itemr->setText(strn); for( int i=0; i<rc; i++){ ui->table2->setItem(i, 0, itemr); }
Рекомендуємо хостинг TIMEWEB
Stabiles Hosting des sozialen Netzwerks EVILEG. Wir empfehlen VDS-Hosting für Django-Projekte.Magst du es? In sozialen Netzwerken teilen!
Kommentare
sf
- sdfsdfkp fgskpgokspdog
- 15. Oktober 2024 01:09
C++ - Тест 004. Указатели, Массивы и Циклы
- Ergebnis:90punkte,
- Bewertungspunkte8
МВ
- Максим Васильев
- 2. Oktober 2024 14:14
Qt - Тест 001. Сигналы и слоты
- Ergebnis:68punkte,
- Bewertungspunkte-1
ЛС
- Лев Семенов
- 30. September 2024 21:04
C++ - Тест 001. Первая программа и типы данных
- Ergebnis:53punkte,
- Bewertungspunkte-4
Letzte Kommentare
Fb3-Dateileser auf Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Django – Lektion 064. So schreiben Sie eine Python-Markdown-Erweiterung Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
Игорь Максимов5. Oktober 2024 17:51
QML - Lektion 016. SQLite-Datenbank und das Arbeiten damit in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Qt Linux - Lektion 001. Autorun Qt-Anwendung unter Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Lektion 007. Arbeiten mit ICMP-Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий Кононенко5. Februar 2024 12:50
Jetzt im Forum diskutieren
добавить qlineseries в функции Пользователь может получить любые разъяснения по интересующим вопросам, касающимся обработки его персональных данных, обратившись к Оператору с помощью электронной почты https://topdecorpro.ru…
ИМ
Реализация навигации по разделам Спасибо Евгений!
Игорь Максимов3. Oktober 2024 14:05
Indian Food Restaurant In Columbus OH| Layla’s Kitchen Indian Restaurant If you're looking for a truly authentic https://www.laylaskitchenrestaurantohio.com/ , Layla’s Kitchen Indian Restaurant is your go-to destination. Located at 6152 Cleveland Ave, Colu…
КГ
Не запускается программа на Qt: точка входа в процедуру не найдена в библиотеке DLL Написал программу на C++ Qt в Qt Creator, сбилдил Release с помощью MinGW 64-bit, бинарнику напихал dll-ки с помощью windeployqt.exe. При попытке запуска моей сбилженной программы выдаёт три оши…
Кирилл Гусарев27. September 2024 19:09
при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …
Добрый день!
Спасибо за наводку!