На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела *nix / gcc / Eclipse / Qt / wxWidgets / GTK+
  • При создании темы ОБЯЗАТЕЛЬНО указывайте версию тулкита / библиотеки / компилятора.
  • Перед тем как задать вопрос, сформулируйте его правильно, чтобы вас могли понять.
  • Нарушение Правил может повлечь наказание со стороны модераторов.


Полезные ссылки:
user posted image Boost по-русски
user posted image Qt по-русски
Модераторы: archimed7592
  
> QTableView/QStandardItemModel и Selection changed
    Здравствуйте, друзья!
    Возникла проблема. Нужно перехватить событие изменения области выделения в таблице, созданной с помощью QTableView/QStandardItemModel. Пошарил по ассистанту - там нет таких сигналов. В QTableWidget есть а здесь почему-то нет. Что делать?
      Цитата MicroHard @
      В QTableWidget есть а здесь почему-то нет.

      В QTableWidget есть метод selectedItems, а в QAbstractItemView его нет.


      Цитата MicroHard @
      Что делать?

      Использовать QTableWidget.
      Как вариант - унаследоваться от QTableView и перекрыть метод selectionChanged.
        Спасибо, Архимед, удивляюсь вашей отзывчивости.
        Пробламу всё-таки удалось решить.
        Вот так:
        ExpandedWrap disabled
          //конструктор:
          CalculatorForm::CalculatorForm(int row,int column,QWidget *parent)
              : QWidget(parent)
          {...
               QHeaderView *qhv=ui.tableView->horizontalHeader();
               QObject::connect(qhv, SIGNAL(sectionDoubleClicked (int )) , this, SLOT(headerdc(int)));
          ...
          };
          //функция-обработчик сигнала
          void CalculatorForm :: headerdc(int val){
          int ret = QMessageBox::warning(this, tr("My Application"),
                             tr("The document has been modified.\n"
                                "Do you want to save your changes?"),
                             QMessageBox::Save | QMessageBox::Discard
                             | QMessageBox::Cancel,
                             QMessageBox::Save);
          };
        в классе CalculatorForm нужно дописать:
        private slots:
        void headerdc(int val);

        короче говоря я получил ссылку на QHeaderView, а в этом классе есть сигнал sectionDoubleClicked. Я его взял да и связал со своей функцией обработчиком headerdc(int val).
        Сообщение отредактировано: ViGOur -
        1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0167 ]   [ 15 queries used ]   [ Generated: 18.05.24, 06:23 GMT ]