Russian Qt Forum
Ноябрь 06, 2024, 06:25 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: не отображаются данные в LineEdit при выборе в TableWidget  (Прочитано 3246 раз)
angell571
Гость
« : Декабрь 05, 2009, 22:35 »

Вывожу данные в LineEdit при выборе значения в TableWidget (через переменную и запрос к БД),но ничего не отображается.
Направьте меня как это можно сделать в QT еще совсем новичек, только пробую,но мучаюсь уже не первый день,все бестолку.
Записан
QCasper
Гость
« Ответ #1 : Декабрь 05, 2009, 23:00 »

Я не очень понял в чем кокнретно вопрос, но возможно следующий код польёт немного света.

Код:
#include <QLayout>
#include <QLineEdit>
#include <QSqlQuery>
#include <QTableView>
#include <QSqlDatabase>
#include <QApplication>
#include <QSqlQueryModel>

class Widget : public QWidget {
Q_OBJECT
public:
Widget() {
initializeDatabase();

m_Model = new QSqlQueryModel(this);
m_Model->setQuery("SELECT * FROM test");

QTableView *view = new QTableView(this);
view->setModel(m_Model);

QVBoxLayout *lt = new QVBoxLayout(this);
lt->addWidget(m_LineEdit = new QLineEdit(this));
lt->addWidget(view);

connect(view, SIGNAL(clicked(QModelIndex)),
SLOT(showCellData(QModelIndex)));
}

public slots:
void showCellData(const QModelIndex & index) {
m_LineEdit->setText(m_Model->data(index).toString());
}

private:
void initializeDatabase() {
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("test.db");
db.open();

if (!db.tables().contains("test"))
db.exec("CREATE TABLE test (id integer, text varchar)");
db.exec("INSERT INTO test VALUES(1, 'text')");
}

QSqlQueryModel *m_Model;
QLineEdit *m_LineEdit;
};

int main(int argc, char *argv[]) {
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}

#include "main.moc"

Смысл следующий. Создаётся тестовая база с одной таблицей (ну чтобы как можно ближе по делу), затем таблица выводится в окно. По клику на ячейки таблицы, содержимое ячейки выводится в QLineEdit.
Записан
angell571
Гость
« Ответ #2 : Декабрь 06, 2009, 05:31 »

Более точно если,то у меня есть несколько форм *.ui файлов. Для отображения данных используется TableWidget.На форме есть табличка, если выбрать в ней какую-то запись, но при на жатии на кнопку Показать на другой форме в соответствующих LineEdit-ах должны отобразиться даннные
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #3 : Декабрь 06, 2009, 06:22 »

angell571, вот и смотри тот код, что привёл QCasper, в нём просто LineEdit один.
Записан

Юра.
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.156 секунд. Запросов: 23.