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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Нестандартные окна, кнопки и т.д.  (Прочитано 9591 раз)
Namelles One
Гость
« : Декабрь 16, 2005, 11:08 »

Огромная просьба ко всем добрым людям...

Обьясните популярно плиз, каким образом вместо стандартной прямоугольной формы наложить картинку, сказав ей, что она - форма...

То же самое с кнопками...

А то ничего не получается...

С использованием WinAPI - картинка становится формой, но так как мы работаем на кросплатфоррменной библиотеке - о каком API может идти речь ?
Записан
Dendy
Гость
« Ответ #1 : Декабрь 16, 2005, 12:11 »

Дивитися:

Код:
QWidget::setMask()
QStyle
QStyleHintReturnMask
Записан
Namelles One
Гость
« Ответ #2 : Декабрь 16, 2005, 17:28 »

Ой блин...
Спасибо конечно за функции, но я же тупой...

Название эти я уже видел, другой вопрос, что в документации ничего непонятно...

Как регионы накладываются?
Как из картинки получить нестандартный регион?
Как на кнопку так наложить, чтобы прямугольником все не резалось?

А вот фиг его знает...
Записан
Sergey B.
Программист
*****
Offline Offline

Сообщений: 544



Просмотр профиля WWW
« Ответ #3 : Декабрь 17, 2005, 01:28 »

Цитата: "Namelles One"
Ой блин...
Спасибо конечно за функции, но я же тупой...

Название эти я уже видел, другой вопрос, что в документации ничего непонятно...

Как регионы накладываются?
Как из картинки получить нестандартный регион?
Как на кнопку так наложить, чтобы прямугольником все не резалось?

А вот фиг его знает...


Да я вот тож усё хочу попробовать стиль написать аля Mac os X
плагином... да чёт некогда.. работа по сменам (qt уже 1,5 месяца не щупал... истосковался)... да и хотелось бы пример поглядеть пошаговый...
Всё жду Qt41 уж люблю я тулбары  и менюшьки рисовать дизайнером...
Записан
Namelles One
Гость
« Ответ #4 : Декабрь 17, 2005, 09:15 »

Так.
1. А че такого крутого будет в Qt 4.1 ??
2. Млин. Меня все неверно поняли.
Одно дело стиль, а другое дело - окно нестандартное...
Вот откроте Неро последний - вот вам и нестандартное окно, не прямоугольное, а фигурное...

WinAPI так умеет, но умеет ли так Qt Непонимающий?
Записан
zlatko
Гость
« Ответ #5 : Декабрь 17, 2005, 11:57 »

спробуй шось типу того
Код:

QPixmap pxPicture( "picture.png");
QToolButton newTb;
newTb.resize( pxPicture.size() );
newTb.setUsesBigPixmap( true );
newTb.setMask( pxPicture.createHeuristicMask() );
newTb.setPixmap( pxPicture );
newTb.show();
Записан
Namelles One
Гость
« Ответ #6 : Декабрь 17, 2005, 14:09 »

Хм...
Данный код пости работаеТ, проблема одна - QToolButton не имеет метода setPixmap() ...
И никакой замены в доках я ему не нашел...

В дополнение...
С окном все прокатило изумительно, ибо на него накладывается , а на него уже в свою очередь картинка...

Но проблема кнопки так до конца и не решена...
Записан
zlatko
Гость
« Ответ #7 : Декабрь 17, 2005, 15:58 »

используй QButton
Записан
Namelles One
Гость
« Ответ #8 : Декабрь 18, 2005, 09:39 »

Неверно.

Но тем не менее проблема кнопки решена...

Код:
 
       QMainWindow mw;

       QWidget central(&mw);
       QPixmap pxPicture( "IceFriend.png");
       QToolButton newTb(&central);
       newTb.resize( pxPicture.size() );
       newTb.setMask( pxPicture.createHeuristicMask() );
       newTb.setIcon( pxPicture );
       newTb.setIconSize( pxPicture.size() );
       newTb.show();

       QObject::connect(&newTb, SIGNAL(clicked()), &app, SLOT(quit()));

       mw.setCentralWidget(&central);
       mw.show();


Правда нажатие выглядит немного странно, но главное - все работает...

И встречный вопрос : А можно ли моменты нажатия кнопки и т.д. - тоже заменить картинками?
То есть картинка не нажатой кнопки, картинка нажатой кнопки и т.д.
Записан
zlatko
Гость
« Ответ #9 : Декабрь 18, 2005, 15:28 »

поиграйся з класом QIconSet
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #10 : Декабрь 19, 2005, 10:45 »

или свой класс напиши, переопределив отрисовку стандартной кнопки
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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