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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Добавление новой строки по клавише Tab и скрытие календаря по клавише Esc  (Прочитано 2579 раз)
tumanovalex
Гость
« : Октябрь 19, 2010, 07:23 »

1. Хотелось бы, чтобы при нажатии клавиши Tab в последней ячейки последней строки QTableWidget добавлялась новая строка. Сейчас у меня действует функция:
Код:
void MainWindow::on_tblData_currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn) {
  int nRow = ui->tblData->rowCount();
  int nCol = ui->tblData->columnCount();
  if(nRow==currentRow+1 &&  nCol == currentColumn+1) {
    ui->tblData->insertRow(nRow);
  }
}
которая приводит к добавлению новой строки по щелчку мыши в последней ячейки или при нажатии любой клавиши. Т.е. новая строка появляется даже тогда, когда это и не нужно. Подскажите, пожалуйста, как сделать добавление строки только при нажатии клавиши Tab в последней ячейке.
2. По нажатию кнопки "V" на форме появляется скрытый ранее календарь для ввода даты в QDateEdit. Хотелось бы по клавише Esc отменить появление календаря (скрыть его снова). Сейчас календарь скрывается только после выбора в нем даты. Подскажите, пожалуйста, как это сделать.
Прикрепляю свой проект.
Записан
merke
Гость
« Ответ #1 : Октябрь 19, 2010, 10:37 »

http://www.java2s.com/Code/Cpp/Qt/InstalleventfilterforQLineEdit.htm
Записан
SABROG
Гость
« Ответ #2 : Октябрь 19, 2010, 11:39 »

Код
C++ (Qt)
   QShortcut* tabShortcut =
           new QShortcut(QKeySequence(Qt::Key_Tab)
                         , ui->tableWidget->viewport());
   QObject::connect(tabShortcut
                    , SIGNAL(activated()), this, SLOT(onTabPress()));
 
Код
C++ (Qt)
void Widget::onTabPress()
{
   int rowCount = ui->tableWidget->rowCount();
 
   if (rowCount < 1 || ui->tableWidget->currentRow() == rowCount-1) {
       ui->tableWidget->insertRow(rowCount);
   }
}
 

2. По нажатию кнопки "V" на форме появляется скрытый ранее календарь для ввода даты в QDateEdit. Хотелось бы по клавише Esc отменить появление календаря (скрыть его снова). Сейчас календарь скрывается только после выбора в нем даты. Подскажите, пожалуйста, как это сделать.
Прикрепляю свой проект.
У меня стандартное поведение для всплывающего календаря QDateEdit на нажатие ESC - скрытие календаря.
« Последнее редактирование: Октябрь 19, 2010, 11:44 от SABROG » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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