Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11673
Последний выпуск: 19.06.2015

Вопрос по QT

86K
13 ноября 2012 года
Adagio
4 / / 13.11.2012
Здравсти, пишу простую программку под линуксом на qt 3.3.3
В основе 2 окна QTextEdit , в процессе потребовалось реализовать переключение фокуса через события QT или посредством сигналов если возможно
вопросы по существу:
1)Как корректно сменить фокус?
пробовал подобный фрагмент:
..............................................
void Form0::keyPressEvent(QKeyEvent* eve)
{
int lbl=0;
switch(eve->key())
{
case Key_Home:
if( lbl==0)
{
QMessageBox:: information(0,"lbl", "4");
// eve->accept();
TextEdit4->setFocus();
lbl=1;

//TextEdit4->clearFocus();
}
else
{
// QMessageBox:: information(0,"lbl", "4_2");
TextEdit4_2->setFocus();
lbl=0;
// TextEdit4_2->clearFocus();
}
//eve->accept();
break;
default: QDialog::keyPressEvent(eve);
}
}
.................
только после выбора какого то окна фокус переключается на него -любой *TextEditN и соответственно обработка заканчивается, не понимаю как исправить это
2) Необходим атрибут RеadOnly для окон , однако в таком случае фокус вообще не выбирается, Можно ли переключить фокус виджетов при окнах только для чтения?
и последний:) Как можно реализовать смену по табу, потому что в проге в этом случае просто работает табуляция в каком то текстовом окне ,а не смена фокуса
Вроде Все )
70K
14 ноября 2012 года
ProkletyiPirat
76 / / 25.07.2012
отформатируй код кнопкой {...}
86K
14 ноября 2012 года
Adagio
4 / / 13.11.2012
в смысле отформатируй, он вроде понятный, но некорректно работает, вот мне интересно почему: )
86K
14 ноября 2012 года
Adagio
4 / / 13.11.2012
как вернуть фокус из текстового поля обратно в форму, чтобы код нормально заработал , я немножко не понимаю..
70K
14 ноября 2012 года
ProkletyiPirat
76 / / 25.07.2012
кнопка {...}

Код:
void Form0::keyPressEvent(QKeyEvent* eve)
{
    int lbl=0;
    switch(eve->key())
    {
        case Key_Home:
            if( lbl==0)
            {
                QMessageBox:: information(0,"lbl", "4");
                // eve->accept();
                TextEdit4->setFocus();
                lbl=1;
   
                //TextEdit4->clearFocus();
            }
            else
            {
                // QMessageBox:: information(0,"lbl", "4_2");
                TextEdit4_2->setFocus();
                lbl=0;
                // TextEdit4_2->clearFocus();
            }
        //eve->accept();
        break;
        default: QDialog::keyPressEvent(eve);
    }
}
237
14 ноября 2012 года
arrjj
1.7K / / 26.01.2011
qt 3.3.3 <- порабы на 4-й перейти.
по сабжу - поиграйся с textinteraction флажками (Qt 4.2 +) / ставь фильтры событий окном для едитов, дропай нажатие tab / напиши наследника QTextEdit с блекджеком и преферансом / накурись и забей
86K
14 ноября 2012 года
Adagio
4 / / 13.11.2012
насчет старой библиотеки знаю, но встроенное ИДЕ на МСВС именно такой древней версии, простой вопрос а как дропнуть нажатие таба или другой кнопочки? То есть как говорил переключиться на окно просто но потом допустим кнопка хоум работает уже в окне и события не генерируются, это в общем основная проблема,
есть переключения по шифт +табу но нужно именно свое сделать по энтеру допустим.
Механизм евентов и переопределения классов посмотрю,спс

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог