Russian Qt Forum
Августа 26, 2025, 19:21 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [3.3.8]Как подменить кнопку навигации между полями QDateTimeEdit?  (Прочитано 3302 раз)
Hordi
Гость
« : Января 17, 2008, 15:39 »

Необходимо подменить кнопку перехода между элементами поля ввода даты(времени) класса QDateTimeEdit (или аналоги). По умолчанию используется Key_Right и кнопка-разделителя (для даты ".", для времени ":").

Пробовал через eventFilter подменять точку на Key_Right - ничего не срабатывает. Вот кусок кода, который не работает:

bool CDateTime::eventFilter( QObject *obj, QEvent *e_ )
{
        if(QEvent::KeyPress == e_->type()){
                QKeyEvent *e = static_cast<QKeyEvent*>(e_);
                int k = e->key();
                qDebug("%d",k);
                if(Key_Period==k){
                   QKeyEvent ev(QEvent::KeyPress, Key_Right, 0, Qt::NoButton);
                   QApplication::sendEvent(obj,&ev);
                   return true;
                }
        }
        return CRegDialog::eventFilter(obj,e_);
}
« Последнее редактирование: Января 17, 2008, 16:32 от xep » Записан
ритт
Гость
« Ответ #1 : Января 17, 2008, 16:09 »

мой ассистант не знает такого конструктора кейивента...знает только такой: QKeyEvent::QKeyEvent ( Type type, int key, Qt::KeyboardModifiers modifiers, const QString & text = QString(), bool autorep = false, ushort count = 1 )

/* укажи версию кутэ в тайтле поста */
Записан
Hordi
Гость
« Ответ #2 : Января 17, 2008, 16:22 »

Сори, qt-3.3.8
Записан
BaltikS
Гость
« Ответ #3 : Января 18, 2008, 23:18 »

Мне кажется этот код не будет работать... Потому как Ты ставишь фильтр на QDateTime. А редактируешь дату и время с клавиатуры непосредственно уже в другом виджете QDateEdit(QTimeEdit).... Эти виджеты внутри QDateTimeEdit-а... А доступа увы к ним нету  Подмигивающий
Записан
_govorilka
Гость
« Ответ #4 : Января 19, 2008, 06:19 »

А в 4.x.x, есть функции...
QDateTimeEdit::lineEdit() - доступ к edit'у
QDateTimeEdit::setLineEdit(QLineEdit * lineEdit) - установка собственного edit'а

Если нет объективных причин, лучше перейти на 4.x.x, проблем будет решать проще
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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