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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Как в Qt Creator увеличить ширину сплиттеров в интерфейсе  (Прочитано 17420 раз)
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« : Апрель 18, 2012, 12:46 »

Надоело уже быть снайпером.  Злой

ВНИМАНИЕ. Речь идет о модном интерфейсе самого Qt Creator! Давайте не путать Qt и QtCreator..

Попробовал покурочить его через style sheets - не помогло (

qtcreator.qss:
Код
CSS
QMainWindow::separator {
 width: 10px;
 height: 10px;
}
 
QSplitter::handle:vertical {
 height: 10px;
}
 
QSplitter::handle:horizontal {
 width: 10px;
}

Код
Bash
> qtcreator -stylesheet qtcreator.qss

Гугление тоже что-то не помогает... Или меня одного эти микроскопические сплиттеры напрягают?
« Последнее редактирование: Апрель 18, 2012, 14:13 от navrocky » Записан

Гугль в помощь
Bepec
Гость
« Ответ #1 : Апрель 18, 2012, 12:55 »

Код:
QSplitterHandle
{
background-color: qlineargradient(spread:repeat, x1:0.3235, y1:0.545, x2:0.21, y2:0.545455, stop:0 rgba(0, 0, 0, 255), stop:1 rgba(255, 255, 255,255));
width: 5px;
height: 5px;
}

А темку бы перенести в CSS Подмигивающий
Записан
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #2 : Апрель 18, 2012, 14:06 »

Код:
QSplitterHandle
{
background-color: qlineargradient(spread:repeat, x1:0.3235, y1:0.545, x2:0.21, y2:0.545455, stop:0 rgba(0, 0, 0, 255), stop:1 rgba(255, 255, 255,255));
width: 5px;
height: 5px;
}

Не помогает. Сплиттеры в креаторе сопротивляются и остаются шириной в один пиксел ( Видимо через css это не решить.

А темку бы перенести в CSS Подмигивающий
Причем тут CSS когда речь идет об интерфейсе креатора?

Модер, перемести, пожалуйста, тему назад в обсуждение инструментария.
« Последнее редактирование: Апрель 18, 2012, 14:09 от navrocky » Записан

Гугль в помощь
Bepec
Гость
« Ответ #3 : Апрель 18, 2012, 14:28 »

Навроски, видимо ты что-то делаешь не так.

Update:
Чуть соврал - QSplitter::setHandleWidth ( int ) задаёт ширину сплиттера, НО.

Но сплиттер остаётся невидимым и соответственно невнятным. CSS задаёт как раз величину отрисовываемой площади.

PS в любом случае CSS тут тоже полезно.
« Последнее редактирование: Апрель 18, 2012, 14:31 от Bepec » Записан
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #4 : Апрель 18, 2012, 14:44 »

Навроски, видимо ты что-то делаешь не так.

Update:
Чуть соврал - QSplitter::setHandleWidth ( int ) задаёт ширину сплиттера, НО.

Но сплиттер остаётся невидимым и соответственно невнятным. CSS задаёт как раз величину отрисовываемой площади.

PS в любом случае CSS тут тоже полезно.

Судя по всему, ты не понял чего я хочу. Вот картинка:
http://wstaw.org/m/2012/04/18/plasma-desktopQi1918.png

Я не могу звать setHandleWidth, для этого мне придется патчить код Qt Creator. Пока не очень хочется.
Записан

Гугль в помощь
Bepec
Гость
« Ответ #5 : Апрель 18, 2012, 15:40 »

Эммм... Да ты крут однако... Изменить параметры гуи программы, не изменяя исходного кода? Молодца.

По идее вроде есть возможность установки плагина, который бы изменил нужные тебе данные, но сомневаюсь.

Самый идеальный вариант - тупо скачать исходники, тупо открыть ui-шник интерфейса(или найти его код) и тупенько тыкнуть, далее тупенько собрать. Это идеальный наипростейший вариант.

Мой вывод - или тупенько компилить, или умненько ничего не делать. Сам пользуюсь VS c Интегрой Подмигивающий

PS точнее надо выражать свои мысли, точнее.
Записан
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #6 : Апрель 18, 2012, 16:14 »

Вот в том и печаль, что похоже без патчей не обойтись. Я думал может есть какое-нибудь решение попроще...

Причем у меня иногда (пару раз было) креатор подглюкивал, его модный стиль отрубался и он выглядел как обычное кутэшное приложение. Как этого добиться что-то не могу вспомнить. Можно было бы тогда его через CSS покурочить на славу )
Записан

Гугль в помощь
Bepec
Гость
« Ответ #7 : Апрель 18, 2012, 19:46 »

CSS - это стиль отображения. Проще выражаясь - нарисовал бы ты сплиттер длиной в 15 см, но работала бы стандартная 3 пиксельная полоска Подмигивающий
Записан
iroln
Гость
« Ответ #8 : Апрель 19, 2012, 14:14 »

В винде я не наблюдаю проблем с активными зонами разделителей в Qt Creator. На глаз (смотрел в экранной лупе) 5 пикселей. То есть проблем с прицеливанием не возникает. Помню, в линуксе, что в гноме, что в kde в стандартных темах очень узкие зоны для окон, постоянно приходилось мучиться с изменением размера окна мышкой за его границы, потому что тупо не попасть. Может у тебя проблема берёт начало оттуда?
Записан
kamre
Частый гость
***
Offline Offline

Сообщений: 233


Просмотр профиля
« Ответ #9 : Апрель 19, 2012, 16:53 »

Помню, в линуксе, что в гноме, что в kde в стандартных темах очень узкие зоны для окон, постоянно приходилось мучиться с изменением размера окна мышкой за его границы, потому что тупо не попасть. Может у тебя проблема берёт начало оттуда?

В линуксовых wm обычно можно удерживая Alt двигать окошко через левую кнопку мышки, а ресайзить через правую. Может потому и делают такие тонкие границы, за которые схватиться сложно.
Записан
iroln
Гость
« Ответ #10 : Апрель 19, 2012, 16:59 »

В линуксовых wm обычно можно удерживая Alt двигать окошко через левую кнопку мышки, а ресайзить через правую. Может потому и делают такие тонкие границы, за которые схватиться сложно.
Да, про эту возможность я знаю, но не думаю, что именно поэтому делают такой маразм с "тонкими границами".
Записан
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #11 : Апрель 20, 2012, 09:51 »

Причем тут ресайзинг окна креатора?
Я не могу попасть в сплиттеры внутри окна. Причем курсор в виде разделителя загорается в широком диапазоне вокруг сплиттера, но попадать мышкой надо чётко в однопиксельную полоску, иначе попадаешь в скроллбар или еще куда-то.

Как оно там под виндой меня не особо интересует к сожалению.

ЗЫЖ Кстати да, проверил - под виндой нормально попадается. Негодяи.
Записан

Гугль в помощь
iroln
Гость
« Ответ #12 : Апрель 20, 2012, 10:00 »

Причем тут ресайзинг окна креатора?
При том, что механизм один и тот же.

Как оно там под виндой меня не особо интересует к сожалению.

ЗЫЖ Кстати да, проверил - под виндой нормально попадается. Негодяи.
Понятно, что вас мало это интересует, но, возможно, проблема не в креаторе, а в оконном менеджере вашей ОС.
Записан
iroln
Гость
« Ответ #13 : Апрель 20, 2012, 10:35 »

Я думаю, с помощью css не получится изменить активную ширину сплиттера. Ширину сплиттера задаёт свойство handleWidth класса QSplitter. В винде оно, кстати, по-умолчанию 5 пикселей. Можно посмотреть в исходниках креатора, что там стоит для сплиттеров, я уверен, что ничего не стоит, всё по-умолчанию, а значит проблема в оконном менеджере.
Записан
iroln
Гость
« Ответ #14 : Апрель 20, 2012, 10:45 »

Э не, кажется, я ошибался. Улыбающийся

Вот в исходниках креатора в файле minisplitter.cpp вижу такое:
Код
C++ (Qt)
MiniSplitter::MiniSplitter(QWidget *parent)
   : QSplitter(parent)
{
   setHandleWidth(1);
   setChildrenCollapsible(false);
   setProperty("minisplitter", true);
}
 

Тогда не понятно, почему в винде нормально работает даже с handleWidth=1 (проверил в Designer).  В замешательстве
« Последнее редактирование: Апрель 20, 2012, 10:47 от iroln » Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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