Russian Qt Forum

Qt => Вопросы новичков => Тема начата: koldun90 от Октябрь 09, 2014, 15:25



Название: Выделение виджета
Отправлено: koldun90 от Октябрь 09, 2014, 15:25
Здравствуйте появился вопрос
как сделать выделения виджета чтобы оно было постоянно.
Допустим есть qlistview когда мы его выбираем появляется вокруг него синяя рамка( фокус) Когда выбираем другой элемент фокус переходит на него.
Так вот мне нужно как бы чтобы я выбрал элемент ( допустим listview )
 и как бы чтобы вокруг него была рамка(такая же как и фокус(только допустим зеленая)).
Только разумеется чтобы эта рамка была всегда вокруг виджета, а не только когда выделен виджет(как работает фокус).
как мне это можно сделать
просто у меня есть допустим два окна правое и левое
допустим выбрал я правое окно(виджет) и нарисовалась рамка зеленая( допустим)
как такое сделать?



 


Название: Re: Выделение виджета
Отправлено: Figaro от Октябрь 09, 2014, 17:01
см qss


Название: Re: Выделение виджета
Отправлено: koldun90 от Октябрь 09, 2014, 18:36
Цитировать
см qss
это что?


Название: Re: Выделение виджета
Отправлено: koldun90 от Октябрь 09, 2014, 19:18
я так понял нужно написать
Код:
ui->treeview->setstyleshee("border-color: green"
                                           "border-width: 6px");
но все остается как и прежде...


Название: Re: Выделение виджета
Отправлено: kambala от Октябрь 09, 2014, 19:56
во-первых, точку с запятой надо ставить между свойствами
во-вторых, оберни свою строку «стили» в QTreeView { стили }


Название: Re: Выделение виджета
Отправлено: koldun90 от Октябрь 09, 2014, 20:30
во-первых, точку с запятой надо ставить между свойствами
во-вторых, оберни свою строку «стили» в QTreeView { стили }

Код:
ui->treeview->setstyleshee("border-color: green;"
                                           "border-width: 6px;");
Так?


Название: Re: Выделение виджета
Отправлено: gil9red от Октябрь 09, 2014, 20:46
во-первых, точку с запятой надо ставить между свойствами
во-вторых, оберни свою строку «стили» в QTreeView { стили }

Код:
ui->treeview->setstyleshee("border-color: green;"
                                           "border-width: 6px;");
Так?

а во-вторых?


Название: Re: Выделение виджета
Отправлено: koldun90 от Октябрь 09, 2014, 21:11
во-первых, точку с запятой надо ставить между свойствами
во-вторых, оберни свою строку «стили» в QTreeView { стили }

Код:
ui->treeview->setstyleshee("border-color: green;"
                                           "border-width: 6px;");
Так?

а во-вторых?

вот второе если честно не понял где ставить {}


Название: Re: Выделение виджета
Отправлено: Bepec от Октябрь 09, 2014, 21:31
Открываем дизайнер.
Создаём виджет.
Перетаскиваем treeView.
Выбираем основное окно(виджет).
Находим свойство StyleSheet (оно в самом низу первого раздела параметров).
Щелкаем на пипочке справа от полоски ввода.
Открывается окно редактора и там мы пишем.
Код:
QTreeView
{   
    border-color: green;
    border-width: 6px;
}
Щелкаем "Ок" и видим результат.

Для достижения того же эффекта в коде, вам нужно будет написать следующее.
Код:
ui.widget->setStyleSheet("QTreeView"\
"{"\
"    border-color: green;"\
"    border-width: 6px;"\
"}");

PS для справки знак \ в конце строки в коде "склеивает" строки.


Название: Re: Выделение виджета
Отправлено: GreatSnake от Октябрь 10, 2014, 07:44
PS для справки знак \ в конце строки в коде "склеивает" строки.
В данном случае склеит и без знака)


Название: Re: Выделение виджета
Отправлено: Bepec от Октябрь 10, 2014, 09:30
Не знаю, я по старому стандарту сужу и VS2008 )


Название: Re: Выделение виджета
Отправлено: GreatSnake от Октябрь 10, 2014, 10:29
Не знаю, я по старому стандарту сужу и VS2008 )
Неправильное суждение.
Обратный слэш в конце строки используется для многострочных констант без обрамления \".
Т.е. в твоём примере будет так:
Код
C++ (Qt)
ui.widget->setStyleSheet("QTreeView\
{\
   border-color: green;\
   border-width: 6px;\
}"
);
Причём обратный слэш это директива препроцессору.


Название: Re: Выделение виджета
Отправлено: Bepec от Октябрь 10, 2014, 10:42
Хм. Интересно, я так не делал. Подглядел просто в одном проекте и пользовался изредка. Спасибо за информацию.