crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Расширяемый (extension) диалог
rusvid
  опции профиля:
сообщение 22.12.2009, 19:41
Сообщение #1


Новичок


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

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




Репутация:   0  


Я новичок в qt, поэтому нужен совет.
Хочется сделать расширяемый (extension) диалог, наподобие как в прикрепленных скиншотах.
Т.е. для разворачивания диалога вместо кнопки использовать иконку с надписью.
Какие классы для этого лучше использовать ? QIcon + QLabel ?

И заодно, как отобразить в своем диалоге пиктограммы warning, critical (т.е. те, которые отображаются в QMessageBox::warning, QMessageBox::critical) ?
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Kagami
  опции профиля:
сообщение 22.12.2009, 20:00
Сообщение #2


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

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

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




Репутация:   9  


Поиск рулит
P.S. QLabel подойдет, но самый простой способ - сделать "плоскую" кнопку

Сообщение отредактировал Kagami - 22.12.2009, 20:05
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rusvid
  опции профиля:
сообщение 22.12.2009, 20:49
Сообщение #3


Новичок


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

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




Репутация:   0  


Цитата(Kagami @ 23.12.2009, 0:00) *
Поиск рулит

Не нашел там ответа. Я, наверное, не совсем точно сформулировал вопрос. Меня не интересует, как делается расширяемый диалог, а интересует какие виджеты лучше использовать для иконки с надписью ("Детали" на скриншоте).
Цитата
P.S. QLabel подойдет, но самый простой способ - сделать "плоскую" кнопку

Ок, буду экспериментировать с QLabel.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 22.12.2009, 20:59
Сообщение #4


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

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

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




Репутация:   94  


Цитата(rusvid @ 22.12.2009, 23:49) *
Ок, буду экспериментировать с QLabel.
а чёж не с Кнопкой = (Щелчёк + Иконка + Текст) ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rusvid
  опции профиля:
сообщение 23.12.2009, 4:33
Сообщение #5


Новичок


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

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 23.12.2009, 0:59) *
Цитата(rusvid @ 22.12.2009, 23:49) *
Ок, буду экспериментировать с QLabel.
а чёж не с Кнопкой = (Щелчёк + Иконка + Текст) ?

Не нравится обводка (выделение) кнопки при щелчке мышью.
Т.е. при щелчке должна поменяться только иконка, ну и расшириться диалог.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 23.12.2009, 13:47
Сообщение #6


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

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

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




Репутация:   94  


Цитата(rusvid @ 23.12.2009, 7:33) *
Не нравится обводка (выделение) кнопки при щелчке мышью.
ну её можно перекрыть стилями.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rusvid
  опции профиля:
сообщение 23.12.2009, 13:55
Сообщение #7


Новичок


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

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 23.12.2009, 17:47) *
Цитата(rusvid @ 23.12.2009, 7:33) *
Не нравится обводка (выделение) кнопки при щелчке мышью.
ну её можно перекрыть стилями.

Подумав, точнее посоветовавшись, с потенциальными пользователями программы, решил оставить обводку.
Так что зря я эту тему завел.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 23.12.2009, 14:37
Сообщение #8


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

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

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




Репутация:   94  


Цитата(rusvid @ 22.12.2009, 22:41) *
И заодно, как отобразить в своем диалоге пиктограммы warning, critical (т.е. те, которые отображаются в QMessageBox::warning, QMessageBox::critical) ?
Смотри:
метод QIcon QStyle::standardIcon ( StandardPixmap standardIcon, const QStyleOption * option = 0, const QWidget * widget = 0 ) const
и
перечисление QStyle::StandardPixmap

Фрагмент кода из QMessageBoxPrivate:
QPixmap QMessageBoxPrivate::standardIcon(QMessageBox::Icon icon, QMessageBox *mb)
{
    QStyle *style = mb ? mb->style() : QApplication::style();
    int iconSize = style->pixelMetric(QStyle::PM_MessageBoxIconSize, 0, mb);
    QIcon tmpIcon;
    switch (icon) {
    case QMessageBox::Information:
        tmpIcon = style->standardIcon(QStyle::SP_MessageBoxInformation, 0, mb);
        break;
    case QMessageBox::Warning:
        tmpIcon = style->standardIcon(QStyle::SP_MessageBoxWarning, 0, mb);
        break;
    case QMessageBox::Critical:
        tmpIcon = style->standardIcon(QStyle::SP_MessageBoxCritical, 0, mb);
        break;
    case QMessageBox::Question:
        tmpIcon = style->standardIcon(QStyle::SP_MessageBoxQuestion, 0, mb);
    default:
        break;
    }
    if (!tmpIcon.isNull())
        return tmpIcon.pixmap(iconSize, iconSize);
    return QPixmap();
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 29.3.2024, 0:12