Russian Qt Forum
Сентябрь 30, 2024, 10:20
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
Как получить указатель активного QComboBox в приложении? 4.3
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Как получить указатель активного QComboBox в приложении? 4.3 (Прочитано 3401 раз)
druxa@mail.com
Гость
Как получить указатель активного QComboBox в приложении? 4.3
«
:
Май 18, 2007, 00:24 »
В приложении есть несколько QComboBox, написал обработку события правой кнопки мыши по элементам QComboBox, для удаления элементов.
Как передать в обработчик ссылку на текущий QComboBox?
Что бы вместо ui.accountComboBox был текущий.
bool dataForm::eventFilter(QObject * o, QEvent * e )
{
if (o == ui.accountComboBox->view() && e->type() == QEvent::ContextMenu) {
QModelIndex columnIndex;
columnIndex = ui.accountComboBox->view()->indexAt(static_cast<QMouseEvent*>( e )->pos());
int i = columnIndex.row();
ui.accountComboBox->removeItem(i);
QString s = "hi";
qWarning(s.toAscii());
return true;
}
return false;
}
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Как получить указатель активного QComboBox в приложении? 4.3
«
Ответ #1 :
Май 18, 2007, 08:36 »
hasFocus ()
или
QApplication::focusWidget ()
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
druxa@mail.com
Гость
Как получить указатель активного QComboBox в приложении? 4.3
«
Ответ #2 :
Май 18, 2007, 18:29 »
Можно подробнее, как получить ссылку на текущий QComboBox?
добавлено спустя 3 часа 11 минут:
Как отсдедить изменения фокуса по элементам?
connect(qApp, SIGNAL(focusChanged(QWidget *,QWidget *)), this, SLOT(cpPointer()));
void dataForm::cbPointer()
{
QString s ="cbPointer()";
qWarning(s.toAscii());
if(qApp->focusWidget() == ui.accountComboBox) cb2 = ui.accountComboBox;
if(qApp->focusWidget() == ui.customerComboBox) cb2 = ui.customerComboBox;
}
Почему не работае?
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Как получить указатель активного QComboBox в приложении? 4.3
«
Ответ #3 :
Май 18, 2007, 19:53 »
зачем вообще так делать? сделай сабкласс от QComboBox и в нем удаляй все, что надо, по нажатию правой кнопки.
QApplication::focusWidget () вернет как раз текущий элемент (т.е. с фокусом ввода).
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...