Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: BagmutA от Август 09, 2011, 16:36



Название: Установка фокуса на виджет в QSplitter
Отправлено: BagmutA от Август 09, 2011, 16:36
Как установить фокус на необходимый мне виджет в QSplitter(по умолчанию он установлен на 0 виджет).
Код
C++ (Qt)
spliter->widget(1)->setFocus();
не помогает


Название: Re: Установка фокуса на виджет в QSplitter
Отправлено: SeverusSnape от Август 09, 2011, 17:25
widget->setFocus()


Название: Re: Установка фокуса на виджет в QSplitter
Отправлено: SeverusSnape от Август 09, 2011, 17:26
то есть обращаться к конкретному виджету в сплиттере напрямую


Название: Re: Установка фокуса на виджет в QSplitter
Отправлено: SeverusSnape от Август 09, 2011, 17:27
как вариант


Название: Re: Установка фокуса на виджет в QSplitter
Отправлено: GreatSnake от Август 09, 2011, 17:30
widget->setFocus()
А что, ТС не тоже самое делает?


Название: Re: Установка фокуса на виджет в QSplitter
Отправлено: BagmutA от Август 09, 2011, 18:17
В QSplitter я добавляю два виджета:
Код
C++ (Qt)
spl = new QSplitter(Qt::Horizontal);
treeView = new QTreeView;
PreviewList = new QListView;
spl->addWidget(treeView );
spl->addWidget(PreviewList);
но ни
Код
C++ (Qt)
spl->widget(1)->setFocus();
, ни
Код
C++ (Qt)
PreviewList->setFocus();
не помогает, в фокусе остается treeView.


Название: Re: Установка фокуса на виджет в QSplitter
Отправлено: GreatSnake от Август 09, 2011, 18:21
Попробуй по таймеру
Код
C++ (Qt)
QTimer::singleShot( 100, PreviewList, SLOT( setFocus() ) );


Название: Re: Установка фокуса на виджет в QSplitter
Отправлено: BagmutA от Август 09, 2011, 18:58
Попробуй по таймеру
Код
C++ (Qt)
QTimer::singleShot( 100, PreviewList, SLOT( setFocus() ) );
Спасибо, это помогло.