Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.07.2017, 01:43   #1
Aoizora
Заблокирован
 
Регистрация: 11.11.2016
Сообщений: 261
По умолчанию Связать два QTableView сигналами и слотами и передать скрытое поле

У меня есть приложение для расчета параметров сотрудников, информация о которых хранится в БД. На форме приложения два QTableView - в одном должности сотрудников, в другом - таблица сотрудников. Мне нужно сделать так, чтобы по клику на строчке с должностью в таблицу сотрудников загружались только те из их, которые находятся на этой должности.

Эти два QTableView связаны сигналами и слотами. Когда QTableView с должностями отправляет сигнал activated(), таблица сотрудников обновляется. Проблема в том, что я не знаю, как через механизм сигналов и слотов отправить ID должности, чтобы использовать его в запросе.

В QTableView должностей отображается два поля: id должности (скрытое поле) и название должности (единственное видимое поле). При активации строки отправляется QModelIndex, соответствующий полю с названием. А мне нужно как-то передать содержимое скрытого поля с id. Или получить его каким-то образом.

Как это сделать?

Код:
class MainWindow : public QMainWindow
{
    Q_OBJECT
public:
    explicit MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private:
    Ui::MainWindow              *ui;
    QSqlQueryModel            *modelPosition;
    QSqlQueryModel            *modelEmployee;

private:
    void setupPositionModel(const QStringList & headers);
    void setupEmployeeModel(const QStringList & headers);
    void createUI();

public slots:
    void updateEmployeeModel(const QModelIndex & index);
};
Aoizora вне форума Ответить с цитированием
Старый 17.07.2017, 12:37   #2
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию

Цитата:
В QTableView должностей отображается два поля: id должности (скрытое поле) и название должности (единственное видимое поле). При активации строки отправляется QModelIndex, соответствующий полю с названием. А мне нужно как-то передать содержимое скрытого поля с id. Или получить его каким-то образом.
Ну наверное названия должностей уникальные. Значит ID можно получить по названию.
SAMOUCHKA вне форума Ответить с цитированием
Старый 17.07.2017, 13:30   #3
Aoizora
Заблокирован
 
Регистрация: 11.11.2016
Сообщений: 261
По умолчанию

Цитата:
Сообщение от SAMOUCHKA Посмотреть сообщение
Ну наверное названия должностей уникальные. Значит ID можно получить по названию.
Это лишний запрос к базе данных.
Aoizora вне форума Ответить с цитированием
Старый 17.07.2017, 13:48   #4
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Это?
https://stackoverflow.com/questions/...f-selected-row
waleri вне форума Ответить с цитированием
Старый 17.07.2017, 15:50   #5
Aoizora
Заблокирован
 
Регистрация: 11.11.2016
Сообщений: 261
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Спасибо, то, что надо.
Aoizora вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Связать два DBGrid'a. sanchosss Помощь студентам 5 19.10.2011 20:28
связать два dbgrida ubun БД в Delphi 3 11.08.2011 21:23
[QT] Проблема с сигналами/слотами. Dayman Qt и кроссплатформенное программирование С/С++ 2 28.04.2011 18:51
Как связать два ComboBox ? Everik БД в Delphi 4 05.01.2010 21:29
Связать два компьютера Betty Операционные системы общие вопросы 12 06.05.2009 20:56