crossplatform.ru

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

Gluck
  опции профиля:
сообщение 9.2.2010, 15:48
Сообщение #1


Новичок


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

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




Репутация:   0  


Почитал я тут похожие темы, но ответа как-то не нашёл. Есть ActiveX виджет, к нему child'ом приделан обычный виджет (который рисуется поверх activeX'ного виджета). И очень хочется, чтобы обычный виджет был полупрозрачным (причем целиком. В соседней теме SABROG писал, что "надо разделить понятие полу-прозрачности и частичной полу-прозрачности. Первое не вопрос, второе гемор." Вот тут первая ситуация). Код, например такой:
class TestWidget : public QWidget
{
public:
  TestWidget( QWidget* parent )
    : QWidget( parent,  )
  {
    QHBoxLayout* layout = new QHBoxLayout();
    layout->addWidget( new QPushButton( "qweqwe" ));
    layout->addWidget( new QPushButton( "qwe" ));
    setLayout( layout );
  }
};
// -------
// в конструкторе класса, пронаследованного от QMainWindow
QAxObject* activeXWidget = new QAxObject( this );
// ... тут делается setControl()
QWidget* testWidget = new TestWidget( activeXWidget );
setCentralWidget( activeXWidget );

Как бы такое можно было сделать? Причем, задача-максимум, чтобы можно было этот виджет нарисовать в Qt Designer'e и потом просто динамически подгрузить. ( Я пытался в нём определять styleSheet как "background-color: rgba(0, 255, 0, 30)", но результаты оказались очень странными).
P.S.: Qt 4.6.0
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Gluck
  опции профиля:
сообщение 17.2.2010, 16:51
Сообщение #2


Новичок


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

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




Репутация:   0  


Цитата(Elfinit @ 17.2.2010, 16:38) *
попробуй background: none

В смысле setBackgroundRole( QPalette::NoRole ); ? Ничего не меняется.
В документации написано, что прозрачность виджетов должна работать автоматически (из-за двойной буферизации). И она на практике работает, но не поверх ActiveX компонента (т.е., если ActiveX виджет неного сместить, чтобы прозрачный виджет налезал на него не полностью, то видно, что там, где нет activeX'ного виджета, прозрачность есть).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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


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