Название: QTableWidget. Таблицы. Отправлено: Asechka от Декабрь 21, 2014, 18:18 Как правильно написать код, чтобы таблица работала с переменными введенными с клавиатуры?
Название: Re: QTableWidget. Таблицы. Отправлено: gil9red от Декабрь 21, 2014, 19:02 А что вы хотите от таблицы QTableWidget?
Название: Re: QTableWidget. Таблицы. Отправлено: Asechka от Декабрь 21, 2014, 19:05 Желательно чтобы она работала с данными которые я ввожу. Примерно хочу сделать excel таблицу.
Название: Re: QTableWidget. Таблицы. Отправлено: kambala от Декабрь 21, 2014, 19:38 если я правильно понял твою цель, в книжке Бланшетт, Саммерфилд есть отличный пример
Название: Re: QTableWidget. Таблицы. Отправлено: Asechka от Декабрь 21, 2014, 19:46 Там через класс делается,а я хочу сделать все в конструкторе.
Название: Re: QTableWidget. Таблицы. Отправлено: kambala от Декабрь 21, 2014, 19:52 а конструктор не в классе что ли находится? :)
опиши детальнее что ты хочешь. Название: Re: QTableWidget. Таблицы. Отправлено: Asechka от Декабрь 21, 2014, 20:02 Ну вот допустим у меня есть первый столбец в таблице, который я полностью заполняю(ввод с клавиатуры), в следующих столбцах уже формулы, которые я изначально определила.
Мне надо, чтобы данные из первого столбца каким-то образом записались в таблицу и без проблем считались по формулам. Пока у меня так не получается. Название: Re: QTableWidget. Таблицы. Отправлено: gil9red от Декабрь 21, 2014, 20:06 Можно, например, отслеживать какой элемент таблицы был изменен с помощью сигнала itemChanged (http://qt-project.org/doc/qt-4.8/qtablewidget.html#itemChanged)
или какая ячейка изменилась (будут получены ее индексы) Посмотрите какие есть сигналы и выберите с какими будете работать: http://qt-project.org/doc/qt-4.8/qtablewidget.html#signals Название: Re: QTableWidget. Таблицы. Отправлено: kambala от Декабрь 21, 2014, 20:07 QTableWidget ничего не знает ни о каких формулах, это просто отображение данных. Весь функционал (парсинг формул, чтение значений через ссылки на ячейки, и т.д.) тебе придется писать самой.
Название: Re: QTableWidget. Таблицы. Отправлено: Asechka от Декабрь 21, 2014, 20:08 Можно, например, отслеживать какой элемент таблицы был изменен с помощью сигнала itemChanged (http://qt-project.org/doc/qt-4.8/qtablewidget.html#itemChanged) Можно пожалуйста подробнее?Название: Re: QTableWidget. Таблицы. Отправлено: Asechka от Декабрь 21, 2014, 20:12 Посмотрите какие есть сигналы и выберите с какими будете работать: http://qt-project.org/doc/qt-4.8/qtablewidget.html#signals Я знаю какие есть сигналы. Просто не понимаю, как с ними работать. Мне бы конкретный пример работы, когда данные вводятся с клавиатуры. Название: Re: QTableWidget. Таблицы. Отправлено: gil9red от Декабрь 21, 2014, 20:13 Можно, например, отслеживать какой элемент таблицы был изменен с помощью сигнала itemChanged (http://qt-project.org/doc/qt-4.8/qtablewidget.html#itemChanged) Можно пожалуйста подробнее?Пожалуйста: Код
Название: Re: QTableWidget. Таблицы. Отправлено: Alexu007 от Декабрь 21, 2014, 20:19 Код
Вот так можно записать строку (str) в произвольное место таблицы, в данном случае строка 1 колонка 2 (начинаются с 0). Название: Re: QTableWidget. Таблицы. Отправлено: Asechka от Декабрь 21, 2014, 20:34 Код
Вот так можно записать строку (str) в произвольное место таблицы, в данном случае строка 1 колонка 2 (начинаются с 0). Да это я знаю как сделать ;) Название: Re: QTableWidget. Таблицы. Отправлено: Asechka от Декабрь 21, 2014, 20:36 Цитировать Пожалуйста: Код
Спасибо. Более-менее глаза мне открыли. Название: Re: QTableWidget. Таблицы. Отправлено: Asechka от Декабрь 21, 2014, 20:43 Пожалуйста: Код
А вот могу я вместо вывода надписи в changed присвоить какой-нибудь l значения ячейки, которую изменили? Название: Re: QTableWidget. Таблицы. Отправлено: gil9red от Декабрь 21, 2014, 20:49 Пожалуйста: Код
А вот могу я вместо вывода надписи в changed присвоить какой-нибудь l значения ячейки, которую изменили? Можете :) Разрешаю ;D Код: void MainWindow::changed(QTableWidgetItem *item) { Название: Re: QTableWidget. Таблицы. Отправлено: Asechka от Декабрь 21, 2014, 20:51 Можете :) Разрешаю ;D как то так? Код: void MainWindow::changed() Название: Re: QTableWidget. Таблицы. Отправлено: gil9red от Декабрь 21, 2014, 20:53 Можете :) Разрешаю ;D как то так? Код: void MainWindow::changed() нет :) Код: void MainWindow::changed(QTableWidgetItem *item) { я не знаю какого типа ваша переменная l :) Если она типа int, тогда: Код: void MainWindow::changed(QTableWidgetItem *item) { Название: Re: QTableWidget. Таблицы. Отправлено: Asechka от Декабрь 21, 2014, 20:56 Она типа QString.
Допустим. Спасибо :) Название: Re: QTableWidget. Таблицы. Отправлено: gil9red от Декабрь 21, 2014, 20:58 Она типа QString. Допустим. Спасибо :) Пожалуйста :) Обращайтесь ;) Название: Re: QTableWidget. Таблицы. Отправлено: Asechka от Декабрь 21, 2014, 21:00 Я ее хочу потом преобразовать в float.
Название: Re: QTableWidget. Таблицы. Отправлено: gil9red от Декабрь 21, 2014, 21:41 Я ее хочу потом преобразовать в float. http://qt-project.org/doc/qt-4.8/qstring.html#toFloat Название: Re: QTableWidget. Таблицы. Отправлено: Asechka от Декабрь 21, 2014, 22:31 http://qt-project.org/doc/qt-4.8/qstring.html#toFloat Ну это я знаю. Спасибо :)Что-то не нравится ему этот код... Ошибки выдает. Название: Re: QTableWidget. Таблицы. Отправлено: gil9red от Декабрь 22, 2014, 00:55 http://qt-project.org/doc/qt-4.8/qstring.html#toFloat Ну это я знаю. Спасибо :)Что-то не нравится ему этот код... Ошибки выдает. Сложно понять в чем ошибка, не зная ее и не видя код Название: Re: QTableWidget. Таблицы. Отправлено: Asechka от Декабрь 22, 2014, 03:15 Сложно понять в чем ошибка, не зная ее и не видя код Код: MainWindow::MainWindow(QWidget *parent) : C2511: void MainWindow::changed(QTableWidgetItem *): ЇҐаҐЈа㦥 п дгЄжЁп-з«Ґ Ґ ©¤Ґ ў "MainWindow" C2597: Ґ¤®ЇгбвЁ¬ п ббл«Є Ґбв вЁзҐбЄЁ© з«Ґ "MainWindow::d" Название: Re: QTableWidget. Таблицы. Отправлено: kambala от Декабрь 22, 2014, 03:32 переменная d ему чем-то не угодила, без заголовочного файла точнее сказать нельзя
Название: Re: QTableWidget. Таблицы. Отправлено: Asechka от Декабрь 22, 2014, 03:34 переменная d ему чем-то не угодила, без заголовочного файла точнее сказать нельзя Код: namespace Ui { Название: Re: QTableWidget. Таблицы. Отправлено: Alexu007 от Декабрь 22, 2014, 08:56 Чему равны d и g в конструкторе формы?
Если ты хочешь по кликам на ячейки таблицы и введённым туда значениям заполнять другие ячейки - то это не в конструкторе формы же делать нада, а в обработчике сигналов изменения ячейки. Куда должны передаваться row и col ячейки. Конструктор формы работает только в момент создания формы, а не тогда, когда приложение уже запущено и ты в таблицу кликаешь. Ну эт не считая того, что ты int делишь на float - какой результат ожидается? Название: Re: QTableWidget. Таблицы. Отправлено: Fregloin от Декабрь 22, 2014, 14:48 Читаем внимательно про модели и представления QAbstractItemModel/QItemDelegate/QTableView. И не надо писать какие то глупости.
QTableWidget служит для вывода небольшого объема простых данных. |