Russian Qt Forum

Qt => Вопросы новичков => Тема начата: DarthRamone от Мая 08, 2012, 14:16



Название: Дизайн кнопок QDateEdit
Отправлено: DarthRamone от Мая 08, 2012, 14:16
Доброго времени суток.
Подскажите пожалуйста, как с помощью таблиц стилей, убрать оформление кнопок виджета QDateEdit оставив при этом одни лишь стрелочки? То есть очистить полностью фон, бордеры и оставить только up-arrow и down-arrow(ну или как правильно, не очень уверен).

Код:
 QDateEdit::down-button, QDateEdit::up-button {
                 border-style: none;
            }

Пробовал сделать так, но пропадает вообще всё, вместе со стрелками.


Название: Re: Дизайн кнопок QDateEdit
Отправлено: DarthRamone от Мая 08, 2012, 20:40
Неужели никто не знает? ???


Название: Re: Дизайн кнопок QDateEdit
Отправлено: V1KT0P от Мая 08, 2012, 20:59
Неужели никто не знает? ???
Да скорее всего на этом форуме мало кто знает, ибо такое мало кому надо. Глянь исходники QDateEdit может что и поймешь.

добавлено:
Никогда не имел дело с стилями, стало интересно. Открыл документацию, чуть почитал, сочинил две строчки и получилось то что ты хотел:
Код
CSS
background-color: transparent;
border: 1px solid transparent;
Виден только текст и треугольники на кнопках. Все остальное прозрачно. Правда треугольники стали выглядеть слишком мелко. Лучше для них сделать новые более крупные изображения.


Название: Re: Дизайн кнопок QDateEdit
Отправлено: DarthRamone от Мая 08, 2012, 21:17
transparent...  ;D
Ну это надо-а, гениальное просто. За сегодня у меня уже второй косяк с тем что я не вижу очевидное. Огромное спасибо :)
Я тоже со стилями дела не имел, сегодня вот начал. Я вообще пару дней как с Qt, поэтому не очень пока еще ориентируюсь в доках. Спасибо ещё раз.


Название: Re: Дизайн кнопок QDateEdit
Отправлено: DarthRamone от Мая 08, 2012, 21:20
Секунду. Вы их применяли к QDateEdit::down-button, или вообще ко всему виджету? Я применил к кнопкам, и все по прежнему.

Вот что у меня получилось. Снова:
(http://dl.dropbox.com/u/45704407/3.PNG)


Название: Re: Дизайн кнопок QDateEdit
Отправлено: V1KT0P от Мая 08, 2012, 21:32
Секунду. Вы их применяли к QDateEdit::down-button, или вообще ко всему виджету? Я применил к кнопкам, и все по прежнему.
Ко всему, я просто вписал этот текст в дизайнере в свойство styleSheet. То-есть:
Код
C++ (Qt)
dateEdit->setStyleSheet(QString::fromUtf8("background-color: transparent;\nborder: 1px solid transparent;"));


Название: Re: Дизайн кнопок QDateEdit
Отправлено: DarthRamone от Мая 08, 2012, 21:49
Секунду. Вы их применяли к QDateEdit::down-button, или вообще ко всему виджету? Я применил к кнопкам, и все по прежнему.
Ко всему, я просто вписал этот текст в дизайнере в свойство styleSheet. То-есть:
Код
C++ (Qt)
dateEdit->setStyleSheet(QString::fromUtf8("background-color: transparent;\nborder: 1px solid transparent;"));
Дело в том, что раз уж я бросился познавать Qt то я решил весь GUI делать вручную, без дизайнера, каждая рюшечка и кнопочка написана руками. Логика моя такая, что если я научусь грамотно рисовать GUI кодом, то с дизайнером потом проблем точно не будет. Если он понадобится, конечно :)
Поэтому проблема все еще актуальна.


Название: Re: Дизайн кнопок QDateEdit
Отправлено: V1KT0P от Мая 08, 2012, 21:56
Дело в том, что раз уж я бросился познавать Qt то я решил весь GUI делать вручную, без дизайнера, каждая рюшечка и кнопочка написана руками. Логика моя такая, что если я научусь грамотно рисовать GUI кодом, то с дизайнером потом проблем точно не будет. Если он понадобится, конечно :)
Поэтому проблема все еще актуальна.
Ну так в чем проблема, я же тебе код который добавляет то что ты хочешь написал:
Код
C++ (Qt)
dateEdit->setStyleSheet(QString::fromUtf8("background-color: transparent;\nborder: 1px solid transparent;"));
Дизайнер он же в конечном итоге генерирует С++ код который создает форму.


Название: Re: Дизайн кнопок QDateEdit
Отправлено: DarthRamone от Мая 08, 2012, 22:14
Ну так в чем проблема, я же тебе код который добавляет то что ты хочешь написал:
Код
C++ (Qt)
dateEdit->setStyleSheet(QString::fromUtf8("background-color: transparent;\nborder: 1px solid transparent;"));
Дизайнер он же в конечном итоге генерирует С++ код который создает форму.
Проблема в том, что Вы применяете этот стиль полностью для всего виджета, а мне необходимы лишь кнопки. Разница есть, и существенная. Если в процессе выполнения мне придется менять стили налету(к примеру если поле обязательное для заполнения, и по принятию формы оно не заполнено, мне надо будет подсветить его) то тогда вновь встанет вопрос о прозрачности кнопок. Ну и ещё, это не очень красиво :) В плане логики, ведь если мне надо менять кнопки, зачем дергать весь виджет. Ну это скорей просто вопрос перфекционизма, и он не столь существенен сколько вышеуказаный :3
Цитировать
Дизайнер он же в конечном итоге генерирует С++ код который создает форму.
Ну это-то само собой. Все же пописать гуй руками не навредит, понимание придет быстрей :)


Название: Re: Дизайн кнопок QDateEdit
Отправлено: V1KT0P от Мая 08, 2012, 22:57
Проблема в том, что Вы применяете этот стиль полностью для всего виджета, а мне необходимы лишь кнопки. Разница есть, и существенная. Если в процессе выполнения мне придется менять стили налету(к примеру если поле обязательное для заполнения, и по принятию формы оно не заполнено, мне надо будет подсветить его) то тогда вновь встанет вопрос о прозрачности кнопок. Ну и ещё, это не очень красиво :) В плане логики, ведь если мне надо менять кнопки, зачем дергать весь виджет. Ну это скорей просто вопрос перфекционизма, и он не столь существенен сколько вышеуказаный :3
Не нравится что к кнопкам стиль применяется, убери кнопки и сделай свои.


Название: Re: Дизайн кнопок QDateEdit
Отправлено: DarthRamone от Мая 08, 2012, 23:02
Не хотелось бы показаться через чур дотошным, но ведь это и есть кнопки. QDateEdit суть есть QSpinBox, а это в свою очередь компоновка QLineEdit'ов и QPushButton'ов. Если я всё правильно понимаю, то смысла делать свои кнопки нет, так как ситуация повторится  :-\


Название: Re: Дизайн кнопок QDateEdit
Отправлено: V1KT0P от Мая 08, 2012, 23:30
Не хотелось бы показаться через чур дотошным, но ведь это и есть кнопки. QDateEdit суть есть QSpinBox, а это в свою очередь компоновка QLineEdit'ов и QPushButton'ов. Если я всё правильно понимаю, то смысла делать свои кнопки нет, так как ситуация повторится  :-\
Нет, ибо тогда для своих QPushButton'ов и QLineEdit-а будут отдельные несвязанные стили.


Название: Re: Дизайн кнопок QDateEdit
Отправлено: DarthRamone от Мая 09, 2012, 00:05
Нет, ибо тогда для своих QPushButton'ов и QLineEdit-а будут отдельные несвязанные стили.
Для них и так отдельные стили, если можно так выразиться. Обращение к батонам происходит через QDiteEdit::down/up-button.
Тем не менее, благодарю за помощь и внимание мне уделённое.
Мне тут на забугорном форуме подсказали, как оказалось проблема моя была в том, что я думал что стрелочки эти, это символ. То есть просто батон с символом стрелочки. Мне сказали, что это просто background-image. Поэтому когда я делал транспарентный фон, то исчезало все вместе со стрелочкой.
Я ещё не пробовал, честно говоря. Но это кажется логичным. Опять же нелогично то, что у вас получилось оставить одну стрелочку используя глобальный стиль. Странно это все.
Завтра попробую сделать свою пикчу для фона. Сегодня уже сил никаких нет.