crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Установка фокуса ввода
denis
  опции профиля:
сообщение 10.8.2009, 10:06
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 10.8.2009
Пользователь №: 993

Спасибо сказали: 0 раз(а)




Репутация:   0  


Убедительная просьба помочь в решении следующей проблемы.
Есть основной класс tabDialog : QDialog, в нем размещена панель закладок QTabWidget.
Так же есть класс AnagramPage : QWidget, содержащий экземпляр класса QLineEdit lineEdit.
В конструкторе tabDialog есть следующий код:
...
tabWidget = new QTabWidget;
tabWidget->addTab(new AnagramPage, tr("Anagram"));
...
Вопрос: как при запуске приложения передать фокус ввода на lineEdit?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rnd
  опции профиля:
сообщение 10.8.2009, 11:53
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 54
Регистрация: 22.7.2009
Пользователь №: 930

Спасибо сказали: 1 раз(а)




Репутация:   0  


примерно так:
tabWidget = new QTabWidget;
AnagramPage* ap = new AnagramPage(tabWidget);
tabWidget->addTab(ap, tr("Anagram"));
ap->lineEdit->setFocus();
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
denis
  опции профиля:
сообщение 10.8.2009, 12:33
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 10.8.2009
Пользователь №: 993

Спасибо сказали: 0 раз(а)




Репутация:   0  


спасибо, но до этого я сам додумался. смущает то, что lineEdit в дочернем классе приходится описывать как public для использования одного метода.
думал, может, есть более изящные способы.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rnd
  опции профиля:
сообщение 10.8.2009, 12:54
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 54
Регистрация: 22.7.2009
Пользователь №: 930

Спасибо сказали: 1 раз(а)




Репутация:   0  


зачем же как паблик, сделайте метод у AnagramPage или попробуйте то же самое(lineEdit->setFocus()) в конструкторе AnagramPage
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
denis
  опции профиля:
сообщение 10.8.2009, 13:52
Сообщение #5


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 10.8.2009
Пользователь №: 993

Спасибо сказали: 0 раз(а)




Репутация:   0  


про метод как-то не догадался. так и сделаю.
а, если в конструкторе AnagramPage вызвать setFocus(), желаемого эффекта не получается.
спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
grio
  опции профиля:
сообщение 13.2.2010, 21:07
Сообщение #6


Студент
*

Группа: Участник
Сообщений: 87
Регистрация: 11.11.2009
Пользователь №: 1221

Спасибо сказали: 6 раз(а)




Репутация:   0  


Цитата(denis @ 10.8.2009, 14:52) *
про метод как-то не догадался. так и сделаю.
а, если в конструкторе AnagramPage вызвать setFocus(), желаемого эффекта не получается.
спасибо.


Парни, неужели нет способа указать фокус на элемент через конструктор формы?
Как вообще программа понимает куда передать фокус при загрузке виджета?
Логично было бы поместить его на первый элемент, указанный в Tab Order.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 8.12.2024, 6:47