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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Дизайн кнопок QDateEdit  (Прочитано 7589 раз)
DarthRamone
Гость
« : Май 08, 2012, 14:16 »

Доброго времени суток.
Подскажите пожалуйста, как с помощью таблиц стилей, убрать оформление кнопок виджета QDateEdit оставив при этом одни лишь стрелочки? То есть очистить полностью фон, бордеры и оставить только up-arrow и down-arrow(ну или как правильно, не очень уверен).

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

Пробовал сделать так, но пропадает вообще всё, вместе со стрелками.
Записан
DarthRamone
Гость
« Ответ #1 : Май 08, 2012, 20:40 »

Неужели никто не знает? Непонимающий
Записан
V1KT0P
Гость
« Ответ #2 : Май 08, 2012, 20:59 »

Неужели никто не знает? Непонимающий
Да скорее всего на этом форуме мало кто знает, ибо такое мало кому надо. Глянь исходники QDateEdit может что и поймешь.

добавлено:
Никогда не имел дело с стилями, стало интересно. Открыл документацию, чуть почитал, сочинил две строчки и получилось то что ты хотел:
Код
CSS
background-color: transparent;
border: 1px solid transparent;
Виден только текст и треугольники на кнопках. Все остальное прозрачно. Правда треугольники стали выглядеть слишком мелко. Лучше для них сделать новые более крупные изображения.
« Последнее редактирование: Май 08, 2012, 21:09 от V1KT0P » Записан
DarthRamone
Гость
« Ответ #3 : Май 08, 2012, 21:17 »

transparent...  Смеющийся
Ну это надо-а, гениальное просто. За сегодня у меня уже второй косяк с тем что я не вижу очевидное. Огромное спасибо Улыбающийся
Я тоже со стилями дела не имел, сегодня вот начал. Я вообще пару дней как с Qt, поэтому не очень пока еще ориентируюсь в доках. Спасибо ещё раз.
Записан
DarthRamone
Гость
« Ответ #4 : Май 08, 2012, 21:20 »

Секунду. Вы их применяли к QDateEdit::down-button, или вообще ко всему виджету? Я применил к кнопкам, и все по прежнему.

Вот что у меня получилось. Снова:
« Последнее редактирование: Май 08, 2012, 21:28 от DarthRamone » Записан
V1KT0P
Гость
« Ответ #5 : Май 08, 2012, 21:32 »

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

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

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

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

Проблема в том, что Вы применяете этот стиль полностью для всего виджета, а мне необходимы лишь кнопки. Разница есть, и существенная. Если в процессе выполнения мне придется менять стили налету(к примеру если поле обязательное для заполнения, и по принятию формы оно не заполнено, мне надо будет подсветить его) то тогда вновь встанет вопрос о прозрачности кнопок. Ну и ещё, это не очень красиво Улыбающийся В плане логики, ведь если мне надо менять кнопки, зачем дергать весь виджет. Ну это скорей просто вопрос перфекционизма, и он не столь существенен сколько вышеуказаный :3
Не нравится что к кнопкам стиль применяется, убери кнопки и сделай свои.
Записан
DarthRamone
Гость
« Ответ #10 : Май 08, 2012, 23:02 »

Не хотелось бы показаться через чур дотошным, но ведь это и есть кнопки. QDateEdit суть есть QSpinBox, а это в свою очередь компоновка QLineEdit'ов и QPushButton'ов. Если я всё правильно понимаю, то смысла делать свои кнопки нет, так как ситуация повторится  В замешательстве
Записан
V1KT0P
Гость
« Ответ #11 : Май 08, 2012, 23:30 »

Не хотелось бы показаться через чур дотошным, но ведь это и есть кнопки. QDateEdit суть есть QSpinBox, а это в свою очередь компоновка QLineEdit'ов и QPushButton'ов. Если я всё правильно понимаю, то смысла делать свои кнопки нет, так как ситуация повторится  В замешательстве
Нет, ибо тогда для своих QPushButton'ов и QLineEdit-а будут отдельные несвязанные стили.
Записан
DarthRamone
Гость
« Ответ #12 : Май 09, 2012, 00:05 »

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


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