Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt GUI _ Положение виджетов

Автор: edwardoid 12.7.2009, 14:44

Как релизовать такое:
есть группа кнопок, по нажатию на одну из них ниже должна появится виджет который будет поверх всех виджетов рядом этими кнопками, что-то подобное реализовано в поиске на форуме, когда нажимаешь на "Поиск" появляется div.

И вообще в CSS для Qt есть такая фича как z-index?

Автор: Litkevich Yuriy 12.7.2009, 17:36

мысли сходу:
Прицепить к кнопке всплывающее меню, а внего поместь необходимые виджеты.

Автор: Kagami 12.7.2009, 20:24

В теме про рисование на дочерних виджетах была ссылка на статью, где для рисования использовалось прозрачное окно, перемещающееся вместе с основным. ИМХО, это самое простое решение - отрисовывать сверху виджет, контролируя его положение и размер

Автор: kwisp 13.7.2009, 8:25

edwardoid,
как вариант унаследоваться от кнопки, по щелчку показывать виджет(член класса но не child кнопки) рядом с кнопкой. можно засунуть в него всё что угонодно.

Автор: Litkevich Yuriy 13.7.2009, 9:00

Помоему мой вариант проще.
Вот часть его взята, с мизерной дороботкой, у Макса Шлее:

#include <QtGui>

// ----------------------------------------------------------------------
int main (int argc, char** argv)
{
    QApplication app(argc, argv);

    QWidget            wgt;
    QVBoxLayout        *l = new QVBoxLayout();
    
    QLabel            *label = new QLabel("Push on button");
    QPushButton        *bwm = new QPushButton("Find");
    
    QMenu            *pmnu = new QMenu();

    QLineEdit        *ed = new QLineEdit;
    ed->setText("Write here");

    QWidgetAction    *action = new QWidgetAction(0);
    action->setDefaultWidget(ed);
    
    pmnu->addAction(action);

    bwm->setMenu(pmnu);
    
    l->addWidget(label);
    l->addWidget(bwm);
    
    wgt.setLayout(l);
    wgt.show();

    return app.exec();
}

Осталось соеденить сигналы текстового поля с чем-нибудь

Автор: Kagami 13.7.2009, 10:24

Или можно взять мою реализацию меню с кнопками http://www.forum.crossplatform.ru/index.php?showtopic=2997&view=findpost&p=21519

Автор: Litkevich Yuriy 13.7.2009, 16:12

edwardoid, одним словом "бери не хочу", одни сплошные готовые решения :)

Автор: edwardoid 13.7.2009, 20:50

Цитата(Litkevich Yuriy @ 13.7.2009, 18:12) *
edwardoid, одним словом "бери не хочу", одни сплошные готовые решения :)

За это я и люблю этот форум)

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)