Russian Qt Forum
Ноябрь 26, 2024, 00:51 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Выделение виджета  (Прочитано 6757 раз)
koldun90
Крякер
****
Offline Offline

Сообщений: 345


Просмотр профиля
« : Октябрь 09, 2014, 15:25 »

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



 
Записан
Figaro
Гость
« Ответ #1 : Октябрь 09, 2014, 17:01 »

см qss
Записан
koldun90
Крякер
****
Offline Offline

Сообщений: 345


Просмотр профиля
« Ответ #2 : Октябрь 09, 2014, 18:36 »

Цитировать
см qss
это что?
Записан
koldun90
Крякер
****
Offline Offline

Сообщений: 345


Просмотр профиля
« Ответ #3 : Октябрь 09, 2014, 19:18 »

я так понял нужно написать
Код:
ui->treeview->setstyleshee("border-color: green"
                                           "border-width: 6px");
но все остается как и прежде...
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #4 : Октябрь 09, 2014, 19:56 »

во-первых, точку с запятой надо ставить между свойствами
во-вторых, оберни свою строку «стили» в QTreeView { стили }
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
koldun90
Крякер
****
Offline Offline

Сообщений: 345


Просмотр профиля
« Ответ #5 : Октябрь 09, 2014, 20:30 »

во-первых, точку с запятой надо ставить между свойствами
во-вторых, оберни свою строку «стили» в QTreeView { стили }

Код:
ui->treeview->setstyleshee("border-color: green;"
                                           "border-width: 6px;");
Так?
Записан
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #6 : Октябрь 09, 2014, 20:46 »

во-первых, точку с запятой надо ставить между свойствами
во-вторых, оберни свою строку «стили» в QTreeView { стили }

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

а во-вторых?
Записан

koldun90
Крякер
****
Offline Offline

Сообщений: 345


Просмотр профиля
« Ответ #7 : Октябрь 09, 2014, 21:11 »

во-первых, точку с запятой надо ставить между свойствами
во-вторых, оберни свою строку «стили» в QTreeView { стили }

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

а во-вторых?

вот второе если честно не понял где ставить {}
Записан
Bepec
Гость
« Ответ #8 : Октябрь 09, 2014, 21:31 »

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

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

PS для справки знак \ в конце строки в коде "склеивает" строки.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #9 : Октябрь 10, 2014, 07:44 »

PS для справки знак \ в конце строки в коде "склеивает" строки.
В данном случае склеит и без знака)
Записан

Qt 5.11/4.8.7 (X11/Win)
Bepec
Гость
« Ответ #10 : Октябрь 10, 2014, 09:30 »

Не знаю, я по старому стандарту сужу и VS2008 )
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #11 : Октябрь 10, 2014, 10:29 »

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

Qt 5.11/4.8.7 (X11/Win)
Bepec
Гость
« Ответ #12 : Октябрь 10, 2014, 10:42 »

Хм. Интересно, я так не делал. Подглядел просто в одном проекте и пользовался изредка. Спасибо за информацию.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.15 секунд. Запросов: 23.