crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

PeterG
  опции профиля:
сообщение 22.2.2009, 0:05
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 6
Регистрация: 21.2.2009
Пользователь №: 571

Спасибо сказали: 0 раз(а)




Репутация:   0  


Здравствуйте.

Мучает такой вопрос эстетического толка :)

Почему в KDE 4(.2) "родные" приложения из репозиториев и других источников выглядят одинаково, а создаваемые мной проги на QT4 выбиваются из общего ряда?

Вот так, например, выглядит меню Rhythmbox.



А так, моя программа:



И эта синева - повсюду, в QTreeWidget, во всех выделениях, меню... Местами очень кошмарно смотриться :)

Что я сделал или настроил не так? Программу собирал и руками и через QtCreator, результат один и тот же. Почему так получается? Ведь QT - родной для КДЕ, следовательно, приложения должны выглядеть одинаково?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
2 страниц V   1 2 >  
Начать новую тему
Ответов (1 - 14)
molchanoviv
  опции профиля:
сообщение 22.2.2009, 0:24
Сообщение #2


Старейший участник
****

Группа: Сомодератор
Сообщений: 597
Регистрация: 18.7.2008
Из: Саратов
Пользователь №: 238

Спасибо сказали: 41 раз(а)




Репутация:   5  


насколько мне помнится Rhythmbox написан на гтк. а стили приложений Qt4 настраиваются с помощью qtconfig. где можно выбрать как стиль KDE4 так и GNOME/GTK(если Qt собран с поддержкой QGtkStyle).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
PeterG
  опции профиля:
сообщение 22.2.2009, 0:31
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 6
Регистрация: 21.2.2009
Пользователь №: 571

Спасибо сказали: 0 раз(а)




Репутация:   0  


molchanoviv, Спасибо за ответ!

Пример я в самом деле привел плохой, но все равно проблема есть: все родные настройки-менюшки КДЕ хоть и чуть потемней, но все равно не настолько контрастируют и выглядят одинаково более-менее.

Про qtconfig знаю, но ведь всё равно получается, что требуется допил от конечного потребителя! А хочется красоты "из коробки" :)
На чем тогда написан к примеру, Konqueror, Konsole? Они все выглядят едино и допила не требуют! Как можно подровняться под них?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 22.2.2009, 0:36
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(PeterG @ 22.2.2009, 3:31) *
Спасибо за ответ!
ткни возле его сообщения "Спасибу" ;)

Цитата(PeterG @ 22.2.2009, 3:31) *
На чем тогда написан к примеру, Konqueror, Konsole? Они все выглядят едино и допила не требуют! Как можно подровняться под них?
а какой ты стиль используешь? задаешь руками или нет?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
molchanoviv
  опции профиля:
сообщение 22.2.2009, 0:38
Сообщение #5


Старейший участник
****

Группа: Сомодератор
Сообщений: 597
Регистрация: 18.7.2008
Из: Саратов
Пользователь №: 238

Спасибо сказали: 41 раз(а)




Репутация:   5  


На KDElib. В основном по дефолту в дистрибутивах для Qt4 приложений уже стоит тема KDE4, но в некоторых все-таки приходится настраивать вручную. Все зависит от дистрибутивостроителя, ну или если человек вручную собирал Qt от юзера.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
PeterG
  опции профиля:
сообщение 22.2.2009, 1:12
Сообщение #6


Новичок


Группа: Новичок
Сообщений: 6
Регистрация: 21.2.2009
Пользователь №: 571

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 22.2.2009, 0:36) *
а какой ты стиль используешь? задаешь руками или нет?

Не задаю, по сути делаешь а-ля "Hello world" и результат такой получается...

Цитата(molchanoviv @ 22.2.2009, 0:38) *
На KDElib. В основном по дефолту в дистрибутивах для Qt4 приложений уже стоит тема KDE4, но в некоторых все-таки приходится настраивать вручную. Все зависит от дистрибутивостроителя, ну или если человек вручную собирал Qt от юзера.

Но ведь когда переключаешь тему в КДЕ, то все приложения об этом сразу же знают, а моя - одна такая :) (Точнее, не одна, такое же поведение наблюдается и у Sun VirtualBox)

Я правильно понял, что идеального пути не существует, что приложение всё равно будет в расплату за кросс-платформенность выглядеть чуть не так, как все? В принципе это не критично, пользоваться-то можно :) Просто люди, для которых надо писать эти самые программы сидят под вендой и КДЕ.

Есть ли возможность поставить какие-нибудь флаги в .pro файл, например, что бы заставить прогу работать почти как родное в КДЕ?

И еще вопрос немного не по теме :)

Где программа через QSettings хранит свои настройки в Никсах? В домашней папке есть папка .qt, но там не то совсем...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 22.2.2009, 1:27
Сообщение #7


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(PeterG @ 22.2.2009, 4:12) *
Где программа через QSettings хранит свои настройки в Никсах?
см. тут

Цитата(PeterG @ 22.2.2009, 4:12) *
Я правильно понял, что идеального пути не существует, что приложение всё равно будет в расплату за кросс-платформенность выглядеть чуть не так, как все? В принципе это не критично, пользоваться-то можно :)
нет все таки выход должен быть.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
molchanoviv
  опции профиля:
сообщение 22.2.2009, 10:53
Сообщение #8


Старейший участник
****

Группа: Сомодератор
Сообщений: 597
Регистрация: 18.7.2008
Из: Саратов
Пользователь №: 238

Спасибо сказали: 41 раз(а)




Репутация:   5  


Цитата(PeterG @ 22.2.2009, 1:12) *
Но ведь когда переключаешь тему в КДЕ, то все приложения об этом сразу же знают, а моя - одна такая :) (Точнее, не одна, такое же поведение наблюдается и у Sun VirtualBox)

Если ты в qtconfig выставишь тему KDE, то при смене темы в приложениях KDE тема будет меняться и в Qt приложениях.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
void*
  опции профиля:
сообщение 22.2.2009, 12:20
Сообщение #9


Программист-самоучка
***

Группа: Участник
Сообщений: 429
Регистрация: 4.6.2008
Пользователь №: 193

Спасибо сказали: 28 раз(а)




Репутация:   3  


у меня кстати та же проблема с Qt собранной вручную. Если в qtconfig выбрать тему Oxygen, то вместо нее все приложения работают под виндосовской темой. Не пойму что ей не хватает

может нужно собирать с какими-то особыми опциями?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
void*
  опции профиля:
сообщение 22.2.2009, 14:56
Сообщение #10


Программист-самоучка
***

Группа: Участник
Сообщений: 429
Регистрация: 4.6.2008
Пользователь №: 193

Спасибо сказали: 28 раз(а)




Репутация:   3  


и как кстати собирать с поддержкой какого-либо стиля?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
PeterG
  опции профиля:
сообщение 22.2.2009, 15:39
Сообщение #11


Новичок


Группа: Новичок
Сообщений: 6
Регистрация: 21.2.2009
Пользователь №: 571

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(molchanoviv @ 22.2.2009, 10:53) *
Если ты в qtconfig выставишь тему KDE, то при смене темы в приложениях KDE тема будет меняться и в Qt приложениях.

У меня по-умолчанию стояла тема Cleanlooks. Ничего, в принципе, не учитывая этой синевы...
Но темы именно КДЕ там нет в списке! Есть Oxygen, но это и есть Oxygen, независимо от выбранной в системе теме.

Поставил тему GTK, оказалась самой юзабельной :)

И самое главное, тема Qt все-таки меняется от стандартной! Похоже, я ввел себя и всех в заблуждение :(
Эта синева - появляется (у меня) в темах Cleanlooks и Plastique. (Обе у меня любимые и ставлю их как правило)

Поставил системный стиль гуя - GTK - и все стало замечательно. (Кстати, вид всё равно из общего ряда выбивается, но все равно куда более симпатичней получилось) :)

Цитата(void* @ 22.2.2009, 14:56) *
и как кстати собирать с поддержкой какого-либо стиля?

А все стили и так являются встроенными :) Стиль можно выбирать программно насколько я знаю.

см. QStyle
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 22.2.2009, 16:20
Сообщение #12


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(PeterG @ 22.2.2009, 18:39) *
А все стили и так являются встроенными :)
нет не все, некоторые зависят от целевой системы.
Цитата
Предупреждение: Стиль доступен только на платформе Windows XP, поскольку использует механизм стилей Windows XP.
, тык

К стати в Qt4.3.5 написано:
Цитата
В Qt на платформе Unix стиль Motif является стилем по умолчанию графического интерфейса пользователя
, тык
У меня на лине вообще сегфлот произошел, я забыл что стиль в исходнике установлен "windows".

PeterG, я думаю стоит задать трольтеховцем вопрос, через трекер, насчет несоответствия стиля самособранной Qt, тому, что у собранной поставщиком дистрибутива. может подскажут как быть. (я как-то обращался, ответили в течении двух дней)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
PeterG
  опции профиля:
сообщение 22.2.2009, 16:27
Сообщение #13


Новичок


Группа: Новичок
Сообщений: 6
Регистрация: 21.2.2009
Пользователь №: 571

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 22.2.2009, 16:20) *
В Qt на платформе Unix стиль Motif является стилем по умолчанию графического интерфейса пользователя

Кошмар какой :) Могли бы и покрасивей выбрать. Или это из-за соображений стандартов/совместимости?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
void*
  опции профиля:
сообщение 22.2.2009, 16:31
Сообщение #14


Программист-самоучка
***

Группа: Участник
Сообщений: 429
Регистрация: 4.6.2008
Пользователь №: 193

Спасибо сказали: 28 раз(а)




Репутация:   3  


Цитата(PeterG @ 22.2.2009, 14:39) *
Стиль можно выбирать программно насколько я знаю.

см. QStyle

я итак это все знаю, просто думал что может быть что-то пропустил
Цитата(Litkevich Yuriy @ 22.2.2009, 15:20) *
тык

я знаю что стиль винды доступен только в винде, но в списке стилей есть какой-то стиль с названием Windows, который типа похож на старый виндосовский стиль, так вот что при выборе стиля Oxygen, что при выборе стиля Windows все время используется такой стиль, как на скриншоте ниже. Остальные стили, естественно, работают нормально.


Сообщение отредактировал void* - 22.2.2009, 20:18
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 22.2.2009, 17:10
Сообщение #15


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(void* @ 22.2.2009, 19:31) *
так вот что при выборе стиля Oxygen, что при выборе стиля Windows все время используется такой стиль,
системный т.е.
Уменя вообще странная ситуация была, прога писалась в виндовозе и только поднего и были такие строчки:
    // Устанавливаем стили
    pStyle = QStyleFactory::create("windows");//Cleanlooks Plastique windowsxp
    QApplication::setStyle(pStyle);
    app.setPalette(pStyle->standardPalette());
загрузился в опенСусе11, взял эти исходник и скомпилял, запускаю - сегфолт, недолгодумая воткнул стиль "пластик", компиляю. Запускаю работает, а в проге есть диалог для выбора стиля, и там отображается список доступных. Обана, вижу доступным "виндовс", выбрал - стиль приложения поменялся, нечто сренее между стандартным (в KDE3...) и виндовозным. Но работает, однако если в приведенном куске кода вернуть назад "виндовз" будет сегфолт :unknw:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 20.6.2025, 15:49