Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Qt  (Прочитано 14412 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Dr.Yevhenius
Опытный

ua
Offline Offline
Пол: Мужской

Qt
« : 31-03-2010 08:53 » 

Помогите, пожалуйста, с Qt.
Есть ли в Qt какой-то класс, который по маске (*.dat) находит все файлы или нужно самому писать?
« Последнее редактирование: 31-03-2010 09:06 от Inkognito » Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #1 : 31-03-2010 10:56 » 

Класс QDir
Обратить внимание на методы
void QDir::setNameFilters ( const QStringList & nameFilters )
QStringList QDir::entryList ( const QStringList & nameFilters, Filters filters = NoFilter, SortFlags sort = NoSort ) const
QFileInfoList QDir::entryInfoList ( const QStringList & nameFilters, Filters filters = NoFilter, SortFlags sort = NoSort ) const
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Dr.Yevhenius
Опытный

ua
Offline Offline
Пол: Мужской

« Ответ #2 : 31-03-2010 12:26 » 

Finch, спасибо. В моем случае понадобилось только QDir::entryList.
Записан
Dr.Yevhenius
Опытный

ua
Offline Offline
Пол: Мужской

« Ответ #3 : 06-04-2010 16:39 » 

Помогите, пожалуйста с изображениями. Мне нужно белый цвет сделать невидимим. Нашел и использовал QBitmap QPixmap::createMaskFromColor ( const QColor & maskColor, Qt::MaskMode mode ) const, но он, кроме того, что делает белый цвет прозрачным, вдобавок красит все небелые цвета в белый Жаль . Может есть какой-то другой способ?
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #4 : 06-04-2010 18:33 » 

Ты создаеш маску изображения, а не само изображение. Кстати, насколько я помню, формат bitmap не поддерживает прозрачность.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Dr.Yevhenius
Опытный

ua
Offline Offline
Пол: Мужской

« Ответ #5 : 07-04-2010 18:43 » 

Кстати, насколько я помню, формат bitmap не поддерживает прозрачность.
Не уверен на счет этого: используя екземпляр обьекта QBitmap я добился результата прозрачности. Но предложенный мною метод плох, как я говорил, тем, что все остальные цвета принимали цвет параметра. Ожидаемого же результата добился с помощью кода:
Код:
QPixmap pixmap;
pixmap.setMask(pixmap.createHeuristicMask());
При этом, у тестируемого рисунка test.bmp (вложение) пропал зеленый цвет.

З.Ы. У меня у всех рисунках цвет, который должен стать прозрачным, -  белый, при этом этот цвет присутствует минимум в левом верхнем углу каждого рисунка... Белый цвет везде стает прозрачным (что, собственно, и нужно было).

* test.bmp (0.51 Кб - загружено 953 раз.)
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #6 : 07-04-2010 18:55 » 

YevhenUA, Я с графикой очень мало занимался. В основном только png отрисовывал. А там понятие прозрачный цвет уже заложено.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Dr.Yevhenius
Опытный

ua
Offline Offline
Пол: Мужской

« Ответ #7 : 12-04-2010 07:01 » 

После некоторой работы с Qt у меня появилось пара вопросов:
1) есть код подключения к базе данных (SQLITE); на большинстве компьютеров он работает, а вот на некоторых - нет; с чем это связано? Ведь код и dll те же;
2) делал поддержку CSS; и опять-таки, часть кода CSS не работает (а именно меню, ниже код) и я не могу понять почему; в документации описано, что все это есть; в Application Output ошибок нет; конечно, в документации, еще было сказано, что часть CSS кода может не иметь результата из-за того, что ОС может установить свои стили (например, цвет заголовка окна); потому у меня меню не меняются? хотя для меню у меня операционкой ничего особенного вроде не установлено: обычный мертвый серый цвет; вот код:
Код:
QMenu {
font-size: 16px;
min-height: 20px;
}

QMenu::item {
background-color: #EEE8AA;
font-size: 16px;
min-height: 18px;
}

QMenu::item:selected {
background-color: #B8860B;
font-size: 16px;
font-weight: bold;
min-height: 18px;
}

QMenu::item:separator {
background-color: #696969;
height: 2px;
}
Записан
Dr.Yevhenius
Опытный

ua
Offline Offline
Пол: Мужской

« Ответ #8 : 20-04-2010 19:32 » 

У меня иной вопрос: как вообще можна стилизировать елементы меню? На QMenu, QAction не реагирует; QMenuBar::item меняет только заголовки меню (тоесть, типа "Файл", "Правка" и т. п.).
Записан
Dr.Yevhenius
Опытный

ua
Offline Offline
Пол: Мужской

« Ответ #9 : 20-04-2010 19:37 » 

Qt 4.6.1 Documentation
Цитата
Customizing QMenu

Individual items of a QMenu are styled using the 'item' subcontrol as follows:

 QMenu {
     background-color: #ABABAB; /* sets background of the menu */
     border: 1px solid black;
 }

 QMenu::item {
     /* sets background of menu item. set this to something non-transparent
         if you want menu color and menu item color to be different */
     background-color: transparent;
 }

 QMenu::item:selected { /* when user selects item using mouse or keyboard */
     background-color: #654321;
 }
For a more advanced customization, use a style sheet as follows:

 QMenu {
     background-color: white;
     margin: 2px; /* some spacing around the menu */
 }

 QMenu::item {
     padding: 2px 25px 2px 20px;
     border: 1px solid transparent; /* reserve space for selection border */
 }

 QMenu::item:selected {
     border-color: darkblue;
     background: rgba(100, 100, 100, 150);
 }

 QMenu::icon:checked { /* appearance of a 'checked' icon */
     background: gray;
     border: 1px inset gray;
     position: absolute;
     top: 1px;
     right: 1px;
     bottom: 1px;
     left: 1px;
 }

 QMenu::separator {
     height: 2px;
     background: lightblue;
     margin-left: 10px;
     margin-right: 5px;
 }

 QMenu::indicator {
     width: 13px;
     height: 13px;
 }

 /* non-exclusive indicator = check box style indicator (see QActionGroup::setExclusive) */
 QMenu::indicator:non-exclusive:unchecked {
     image: url(:/images/checkbox_unchecked.png);
 }

 QMenu::indicator:non-exclusive:unchecked:selected {
     image: url(:/images/checkbox_unchecked_hover.png);
 }

 QMenu::indicator:non-exclusive:checked {
     image: url(:/images/checkbox_checked.png);
 }

 QMenu::indicator:non-exclusive:checked:selected {
     image: url(:/images/checkbox_checked_hover.png);
 }

 /* exclusive indicator = radio button style indicator (see QActionGroup::setExclusive) */
 QMenu::indicator:exclusive:unchecked {
     image: url(:/images/radiobutton_unchecked.png);
 }

 QMenu::indicator:exclusive:unchecked:selected {
     image: url(:/images/radiobutton_unchecked_hover.png);
 }

 QMenu::indicator:exclusive:checked {
     image: url(:/images/radiobutton_checked.png);
 }

 QMenu::indicator:exclusive:checked:selected {
     image: url(:/images/radiobutton_checked_hover.png);
 }
Не знаю, что-то оно у меня не работает. Может флаг какой-то нужно установить на true?
Записан
Dr.Yevhenius
Опытный

ua
Offline Offline
Пол: Мужской

« Ответ #10 : 20-04-2010 19:40 » 

ЖЕСТЬ! Чтоб применить CSS-код к менюшкам, нужно для каждого меню вызвать метод setStyleSheet(). С ума сойти...

P.S. Сам с собой разговариваю. Отлично
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines