Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: BuRn от Декабрь 04, 2011, 15:38



Название: редактирование названия tabWidget
Отправлено: BuRn от Декабрь 04, 2011, 15:38
Какой сигнал будет при клике 2 раза на название табы. т.е. хотелось бы что бы можно было меня название табы, кликнул 2 раза по ней, появилось его редактирования


Название: Re: редактирование названия tabWidget
Отправлено: Авварон от Декабрь 04, 2011, 16:08
Код:
class MyTabWidget : public QTabWidget
{
    Q_OBJECT
public:
    MyTabWidget(QWidget *parent = 0) : QTabWidget(parent)
    {
        tabBar()->installEventFilter(this);
    }

signals:
    void tabBarDoubleClicked();

protected:
    bool eventFilter(QObject *o, QEvent *e)
    {
        if (o != tabBar())
            return false;

        if (e->type() == QEvent::MouseButtonDblClick) {
            QMouseEvent *me = static_cast<QMouseEvent *>(e);

            if (tabBar()->tabAt(me->pos()) == -1)
                emit tabBarDoubleClicked();

            return true;
        }
        return false;
    }
};


Название: Re: редактирование названия tabWidget
Отправлено: BuRn от Декабрь 04, 2011, 19:09
сконвертил я свою табу в MyTabWidget
ставлю обработчик
что-то типа
connect(ui->tabWidget_3,SIGNAL(tabBarDoubleClicked()),SLOT(AcceptTable()));
не срабатывает слот


Название: Re: редактирование названия tabWidget
Отправлено: BuRn от Декабрь 04, 2011, 19:20
а именно
 if (tabBar()->tabAt(me->pos()) == -1)
                emit tabBarDoubleClicked();
вот тут все же наверное !=-1, ибо если вернула индекс, то эмит если нет то нет


Название: Re: редактирование названия tabWidget
Отправлено: BuRn от Декабрь 07, 2011, 01:23
Все бы ничего, только вто заметил, если ставлю обработчик на этот сигнал, при котором у меня вываливается форма, то форма вываливается не 1 раз, относительно той табы на которю я 2 раза нажал, а сколько страниц в QTabWidget столько раз и срабатывает сигнал