Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 26.05.2021
Сообщений: 9

Вывод информации из текстового поля QlineEdit в предварительно созданную таблицу TabelWidget

28.05.2021, 13:57. Показов 3332. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, я начинающий в QT и C++, и у меня появился вопрос такого плана, как:
Можно ли каким-то образом передавать напечатанный в lineEdit текст, в поля таблицы tableWidget, которая написана на отдельной странице виджета stackedWidget? Буду признателен за советы, если вообще есть такая возможность. Если так сделать нельзя, то подскажите каким образом это можно реализовать.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.05.2021, 13:57
Ответы с готовыми решениями:

Внесение новой информации в ранее созданную таблицу "Пользователи"
Всем привет столкнулся с такой проблемой как запись новой информации в ранее имеющую таблицу "Пользователи" т.е в голове я...

Вывод данных из mysql в динамически созданную таблицу (или как впихнуть переменные)
И так... делаю дипломку, сдача уже завтра:help:, естественно горит не только 5., но не суть, подгорает больше от того, что нужно...

Вывод информации с текстового файла
Дан текст. Каждый символ которого может быть малой буквой, цифрой или одним из знаков +, -, *. Группой букв будем называть такую...

10
 Аватар для Ender Che
518 / 408 / 77
Регистрация: 29.05.2018
Сообщений: 1,337
28.05.2021, 15:34
Для начала не совсем понятны условия задачи.
Это должен быть один QLineEdit, из которого последовательно будут заполняться ячейки QTableWidget или, допустим, на каждый столбец свой QLineEdit, а заполнение будет по кнопке "Добавить строку" (второе логичнее)?
0
0 / 0 / 0
Регистрация: 26.05.2021
Сообщений: 9
28.05.2021, 16:02  [ТС]
Такого рода таблица(приложена), там под каждое отдельное текстовое поле своя ячейка. Если сам вид таблицы(по факту множества таблиц) не верен, то буду рад объяснению его правильного вида.
В приложении очень много полей для заполнения, и нужно что бы информация из этих полей когда писалась в lineEdit`е, появлялась в ячейках. Являются ли ячейки таблицы объектами, с которыми можно было бы прописать слот/сигнал? Если да, то как узнать их имена, как создать слот не для всей таблицы, а для конкретной ячейки?

Суть вообще в том, что эта таблица не видна, и является чем-то по типу базы данных. Просто я нашел как именно tableWidget нормально "отправлять" в MySQL. Хотя вдруг можно как-то без головокружений отправлять информацию из lineEdit в БД, не используя этот промежуток в виде tableWidget. Если подскажите с этим, то буду втройне благодарен.
Миниатюры
Вывод информации из текстового поля QlineEdit в предварительно созданную таблицу TabelWidget  
0
 Аватар для Ender Che
518 / 408 / 77
Регистрация: 29.05.2018
Сообщений: 1,337
28.05.2021, 16:18
Форма с таблицами на картинке - о, мои глаза!.. 8-0

Эти поля как-то связаны между собой? Какова вообще структура базы данных в виде обычной таблицы/таблиц на примере Excel?

Про слоты/сигналы не скажу ничего определённого, пока вы не ответите на вопрос выше.

Если вы не связаны в решении вашей задачи выбором базы данных, то как начинающему рекомендую начать с SQLite. И для визуализации таблицы из базы данных пользоваться QTableView через QSqlTableModel. Или, если нужно представить данные из нескольких таблиц или часть данных из большого массива данных - QSqlQueryModel.
0
Покинул чат.
1132 / 727 / 195
Регистрация: 30.03.2021
Сообщений: 2,379
28.05.2021, 17:29
Цитата Сообщение от succc Посмотреть сообщение
нужно что бы информация из этих полей когда писалась в lineEdit`е, появлялась в ячейках
У QLineEdit есть сигнал (и несколько подобных ему)
void QLineEdit::textEdited(const QString &text)
This signal is emitted whenever the text is edited. The text argument is the new text.
Можно связать этот сигнал со своим слотом, где каждый QLineEdit будет знать координаты своей ячейки в QTableWidget и изменять её при вызове этого сигнала. Но при таких размерах таблицы это сизифов труд.
0
0 / 0 / 0
Регистрация: 26.05.2021
Сообщений: 9
31.05.2021, 10:41  [ТС]
Если не сложно, то можете подсказать как узнать координаты ячейки, и дать совет как лучше переписать таблицу? В приложении есть lineEdit`ы и checkBox`ы, и мне нужно как-то их отобразить в таблице. Заранее благодарю за подсказку!

Добавлено через 13 минут
Плюсом, про слоты у lineEdit я в курсе, уже была задача, что бы редактируемый текст из него переходила в label, где она просто будет отображаться.
Прописано оно вот так:
void MainWindow::on_lineEdit_2_textChanged(co nst QString &text)
{
connect(ui->lineEdit_2, SIGNAL(textChanged(const Qstring &text)), this, SLOT(on_label_33_linkActivated(const QString &link)));
ui->lineEdit_2->text();
ui->label_33->setText(text);
}


void MainWindow::on_label_33_linkActivated(co nst QString &link)
{

}

Что, мне кажется, написано не совсем верно, но в мою зеленую голову ничего лучше не пришло

И вопрос изначально не в том, как эти сигналы прописать, а в том, как узнать координаты ячейки и как именно к ячейке слот прописать.
0
 Аватар для Ender Che
518 / 408 / 77
Регистрация: 29.05.2018
Сообщений: 1,337
31.05.2021, 10:59
Цитата Сообщение от succc Посмотреть сообщение
как лучше переписать таблицу?
На этот вопрос можно ответить только после ответа на вопрос
Цитата Сообщение от Ender Che Посмотреть сообщение
Какова вообще структура базы данных в виде обычной таблицы/таблиц на примере Excel?
0
0 / 0 / 0
Регистрация: 26.05.2021
Сообщений: 9
31.05.2021, 11:22  [ТС]
Скорее всего как-то так. Ибо в приложении куча текстовых полей, которые конечный пользователь в теории должен наполнить текстом, а так же есть 6 "галочек", которые так же пользователь в теории должен выбрать/не выбрать.
Просто в том варианте, под каждую страницу было, хотя я так понимаю лучше лайнэдитам дать нормальные имена, и сделать это все в форме одной таблицы. Я единственное что не придумал, как в одну таблицу, где куча текстовых полей, засунуть чекбоксы(условно идет 20 текстовых полей, а с 21-го начинаются чекбоксы, хотя я хз можно ли так в QTшных таблицах сделать).
Миниатюры
Вывод информации из текстового поля QlineEdit в предварительно созданную таблицу TabelWidget  
0
 Аватар для Ender Che
518 / 408 / 77
Регистрация: 29.05.2018
Сообщений: 1,337
31.05.2021, 12:34
Более-менее понятно.

С чекбоксами вилка:
- если пользоваться QTableWidget, то там есть возможность задать для QTableWidgetItem через setFlags(), что это чекбокс;
- если использовать QTableView, как я предлагал ранее, то для чекбокса нужно будет пилить делегата, что по первому разу кажется сложным (в офдокументации есть пример делегата, можно на него ориентироваться).

По сигналам и слотам.
Если вы на каждый столбец выделяете свой QLineEdit, то вроде ничего сложного: добавляете к ряду лайнэдитов QPushButton, по которой отправляете данные в базу. Сигналом у вас будет нажатие на кнопку, а в слоте прописываете запись данных из лайнэдитов в поля базы данных.
1
0 / 0 / 0
Регистрация: 26.05.2021
Сообщений: 9
31.05.2021, 12:39  [ТС]
Спасибо! Сейчас попробую это все сделать, но если не трудно, то можете "образно" накидать строчку именно с слотом передачи данных из лайнэдита в поля базы данных, просто именно с этим я чутка запутался.
0
 Аватар для Ender Che
518 / 408 / 77
Регистрация: 29.05.2018
Сообщений: 1,337
31.05.2021, 14:05
Цитата Сообщение от succc Посмотреть сообщение
"образно" накидать строчку именно с слотом передачи данных из лайнэдита в поля базы данных
Как-то так вижу:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
void MainWindow::slotNewRecord()
{
    QSqlQuery queryInsert;
    queryInsert.prepare(
        "INSERT INTO " + yourTableName + " (" +
        cell1 + ", " +
        cell2 + ", " +
        ...
        cellN + ") " +
        "VALUES (:Cell1, :Cell2, ... , :CellN)");
 
    queryInsert.bindValue(":Cell1", yourLineEdit1->text());
    queryInsert.bindValue(":Cell2", yourLineEdit2->text());
    ...
    queryInsert.bindValue(":CellN", yourLineEditN->text());
 
    if(!queryInsert.exec())
    {
        qDebug() << "Error insert new record into table";
        qDebug() << queryInsert.lastError().text();
    }
    else
    {
        qDebug() << "Inserted new record into table";
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.05.2021, 14:05
Помогаю со студенческими работами здесь

При disabled текстового поля в таблицу БД ничего не заносится
Здравствуйте! При отправки данных с формы в таблицу БД поля у которых стоит disabled даже если они заполнены не заносятся в базу. Что...

Вывод информации из текстового файла в StringGrid
Скажите пожалуйста,как в StringGrid выводить текстовую информацию. Код работает правильно но не выводит. Код: { AnsiString...

Вывод текстового поля с бд
Здравствуйте, у меня есть бд, из которого не могу вывести текст. Выводит ошибку в 27 строке: Notice: Undefined variable: text ...

Как реализовать запись нового пароля из текстового поля в таблицу базы
Привет. Имеется таблица в базе данных вот с такими столбцами: NumberUser, Password, FullName. В поле со списком я должен выбирать фамилию...

вывод значения из текстового поля
Добрый вечер, подскажите что я не так делаю? Почему значение поля не выскакивает в alert!? function pokaz(){ var f =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru