Russian Qt Forum

Qt => QSS => Тема начата: daimon от Июнь 07, 2011, 23:17



Название: QDockWidget QSplitter полоска растягивания [решено]
Отправлено: daimon от Июнь 07, 2011, 23:17
Как сделать, чтобы как-то выделялась полоска сплитера - там утопление или наоборот выступ сделать, покрасить чёрным?


Название: Re: QDockWidget QSplitter полоска растягивания
Отправлено: Авварон от Июнь 08, 2011, 10:44
Вообще-то сплиттер юзает нативные средства рисования и то, что не видно хэндла - это нормально. Вообще, делай свой хэндл (в ассистанте написано как) и рисуй его сам.
В свое время выдирал из креатора минисплиттер в мак-стиле - черный хэндл шириной 1 пиксель (см. вложение)


Название: Re: QDockWidget QSplitter полоска растягивания
Отправлено: GreatSnake от Июнь 08, 2011, 13:05
Как сделать, чтобы как-то выделялась полоска сплитера - там утопление или наоборот выступ сделать, покрасить чёрным?
Через CSS (http://doc.qt.nokia.com/latest/stylesheet-examples.html#customizing-qmainwindow).


Название: Re: QDockWidget QSplitter полоска растягивания
Отправлено: daimon от Июнь 08, 2011, 16:44
Как сделать, чтобы как-то выделялась полоска сплитера - там утопление или наоборот выступ сделать, покрасить чёрным?
Через CSS (http://doc.qt.nokia.com/latest/stylesheet-examples.html#customizing-qmainwindow).
в дизайнере побалуюсь


Название: Re: QDockWidget QSplitter полоска растягивания
Отправлено: daimon от Июнь 08, 2011, 19:28
 QDockWidget {
     border: 1px solid red;
  }

не помагает и все теги с border не работают


Название: Re: QDockWidget QSplitter полоска растягивания
Отправлено: LisandreL от Июнь 08, 2011, 20:17
Код:
 QDockWidget > QSplitterHandle {
     border: 1px solid red;
  }
Или QDockWidget > QSplitter > QSplitterHandle
В общем надо расковырять QDockWidget и посмотреть иерархию до того, что вы хотите раскрасить.


Название: Re: QDockWidget QSplitter полоска растягивания
Отправлено: GreatSnake от Июнь 08, 2011, 20:29
QDockWidget {
     border: 1px solid red;
  }

не помагает и все теги с border не работают
Я ссылку (http://doc.qt.nokia.com/latest/stylesheet-examples.html#customizing-qmainwindow) для кого показывал  ???
Настраивать нужно QMainWindow, а не QDockWidget, что в принципе и логично, т.к. сплиттер размещён между доками, т.е. управляется самим QMainWindow.


Название: Re: QDockWidget QSplitter полоска растягивания
Отправлено: daimon от Июнь 08, 2011, 22:42
Код
C++ (Qt)
QMainWindow::separator::vertical {
    background :qlineargradient(spread:pad, x1:0.993909, y1:0.455, x2:0, y2:0.511, stop:0 rgba(172, 172, 172, 255), stop:1 rgba(255, 255, 255, 255));
    width: 5px; /* when vertical */
    height: 5px; /* when horizontal */
 
    border-radius: 2px;
 
}
 
QMainWindow::separator:hover::vertical {
    background:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(102, 102, 102, 255), stop:1 rgba(255, 255, 255, 255));
}
 
QMainWindow::separator::horizontal {
    background :qlineargradient(spread:pad, x1:0.494, y1:1, x2:0.483, y2:0.0166818, stop:0 rgba(172, 172, 172, 255), stop:1 rgba(255, 255, 255, 255));
    width: 5px; /* when vertical */
    height: 5px; /* when horizontal */
 
    border-radius: 2px;
 
}
 
QMainWindow::separator:hover::horizontal{
    background:qlineargradient(spread:pad, x1:0.5, y1:0.017, x2:0.5, y2:1, stop:0 rgba(102, 102, 102, 255), stop:1 rgba(255, 255, 255, 255));
}

самые оптимальные настройки