Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Turing от Февраля 02, 2006, 08:28



Название: Размер иконок QToolBar в Qt 4.1.0
Отправлено: Turing от Февраля 02, 2006, 08:28
В Qt 4.1.0 изменили стандартный размер иконок QToolBar.
Решил уменьшить их.

Код:
toolBar->setIconSize(QSize(8, 8));

не работает !!!

Код:
int extent;
QStyle::PixelMetric metric;
metric = QStyle::PM_SmallIconSize;
extent = QApplication::style()->pixelMetric(metric);
toolBar->setIconSize(QSize(extent, extent));

не работает!!!

Может я что-то не так делаю???


Название: Размер иконок QToolBar в Qt 4.1.0
Отправлено: nEoN от Февраля 02, 2006, 09:58
Я нашёл только одно решение - исправить в исходниках Qt одну константу 24 -> 16 и пересобрать Qt.

Для стилей windows/windowsXP файл Qt\4.1.0\src\gui\styles\qwindowsstyle.cpp
Код:
int QWindowsStyle::pixelMetric(PixelMetric pm, const QStyleOption *opt, const QWidget *widget) const
{
...
    case PM_ToolBarIconSize:
//        ret = 24;
        ret = 16;
        break;
...
}


Название: Размер иконок QToolBar в Qt 4.1.0
Отправлено: Steven_Orko от Февраля 02, 2006, 16:06
Вообще, я изменял размер иконок QToolBar через  setIconSize(QSize(16, 16));

добавлено спустя 57 секунд:

 Так что пересобирать, а уж тем более изменять исходники Qt, не надо  :D


Название: Размер иконок QToolBar в Qt 4.1.0
Отправлено: nEoN от Февраля 02, 2006, 16:08
В 4.1 под WinXP это не работает.


Название: Размер иконок QToolBar в Qt 4.1.0
Отправлено: Steven_Orko от Февраля 02, 2006, 16:31
А ты где это пишешь? Надо в конструкторе. У меня и под 4.1 и под 4.0.1 в XP работает. Твой виджет с тулбаром - это QMainWindow?

добавлено спустя 12 минут:

 
Цитата: "nEoN"
В 4.1 под WinXP это не работает.


Если уж на то пошло, чтобы изменять исходные коды, то, ИМХО, лучше тогда уж написать свой класс, наследовав его от упомянутых тобою стилей. А в нем уже переопределить функцию pixelMetric() так, чтобы именно для QToolBar она возвращала необходимый размер. Изменять исходники - это крайнее дело, и совсем некрасивое, так как потом, когда выйдет обновленная версия, твоя прога может минимум работать неправильно.


Название: Размер иконок QToolBar в Qt 4.1.0
Отправлено: nEoN от Февраля 02, 2006, 16:34
По всякому пробовал, в Qt 4.1.0 кнопки на тулбарах остаются большими (24x24).

Например берём стандартный Qt-шный пример c:\Qt\4.1.0\examples\mainwindows\application.
Добавляем в конструктор главного окна setIconSize(QSize(16, 16)) :
Код:
MainWindow::MainWindow()
{
setIconSize(QSize(16, 16));
...
}

Пересобираем пример, и в результате ничего не меняется, кнопки на тулбаре остаётся такими же большими  :?.


Название: Размер иконок QToolBar в Qt 4.1.0
Отправлено: Steven_Orko от Февраля 02, 2006, 16:38
Вообще, честно говоря, странно. Я просто недавно, как позавчера все выбирал, какие размеры мне лучше оставить (24 или 16). И вот щас пересобрал прогу, вроде все ок. Надо поглубже посмотреть. Можеть еще что менял. Но точно, не через стили.


Название: Размер иконок QToolBar в Qt 4.1.0
Отправлено: nEoN от Февраля 02, 2006, 16:49
Цитата: "Steven_Orko"
Если уж на то пошло, чтобы изменять исходные коды, то, ИМХО, лучше тогда уж написать свой класс, наследовав его от упомянутых тобою стилей. А в нем уже переопределить функцию pixelMetric() так, чтобы именно для QToolBar она возвращала необходимый размер. Изменять исходники - это крайнее дело, и совсем некрасивое, так как потом, когда выйдет обновленная версия, твоя прога может минимум работать неправильно.

По поводу Qt-шных исходников полностью с тобой согласен, изменять их крайне не желательно.
Эту правку я использую как временное решение, которое не несёт за собой никаких последствий. Думаю в следущей версии они эту проблему исправят.

добавлено спустя 7 минут:

 Кстати, вот он этот баг в Task Tracker'e у тролей :
http://www.trolltech.com/developer/tasktracker.html?method=entry&id=97137
Resolution: Fixed
Scheduled for: 4.1.1


Название: Размер иконок QToolBar в Qt 4.1.0
Отправлено: Steven_Orko от Февраля 02, 2006, 17:01
Дело в том, у меня до последнего момента, пока я не пересобрал проект полностью, это работало. А теперь тоже не имеет эффекта. (((


Название: Размер иконок QToolBar в Qt 4.1.0
Отправлено: nEoN от Февраля 02, 2006, 17:11
Цитата: "Steven_Orko"
Дело в том, у меня до последнего момента, пока я не пересобрал проект полностью, это работало. А теперь тоже не имеет эффекта. (((

Может до этого библиотеки не от Qt 4.1, а от Qt 4.0.1 поцеплялись.


Название: Размер иконок QToolBar в Qt 4.1.0
Отправлено: Steven_Orko от Февраля 02, 2006, 18:15
Я тоже так подумал, но когда поменял версию Qt, все осталось неизменным. Пересборка проекта непомогла. Странно. Буду разбираться...


Название: Размер иконок QToolBar в Qt 4.1.0
Отправлено: Tirex от Февраля 15, 2006, 20:28
та же проблема пишу на Xp, под VS 2003 .net не менется размер ни в QTDesigner и в коде, никакой реакции, как решить проблему можно?


Название: Размер иконок QToolBar в Qt 4.1.0
Отправлено: Steven_Orko от Февраля 15, 2006, 22:47
Цитата: "Tirex"
та же проблема пишу на Xp, под VS 2003 .net не менется размер ни в QTDesigner и в коде, никакой реакции, как решить проблему можно?

Ждать следующей версии.