crossplatform.ru

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

dr-jazz
  опции профиля:
сообщение 21.11.2011, 1:08
Сообщение #1


Новичок


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

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




Репутация:   0  


Добрый день!

Начал изучать С++ и Qt... пока только основы и начало.

Пытаюсь разобраться с добавлением вкладок в QTabWidget.
Идея в том, что существует кнопка и панель со вкладками.
При нажатии кнопки вкладки добавляются на панель.

Для этого я объявляю класс наследующий QTabWidget и в нем добавляю слот, который позволяет добавление вкладок.

После этого коннект и все должно работать, но не работает. Кнопку нажимаю, но вкладки при этом не добавляются.

Очень нуждаюсь в подсказке, что же у меня не так.

Спасибо заранее.

Код привожу ниже.


#include<QtGui>

class myTabWidget : public QTabWidget
{

public slots:
    void plusTab();
};

void myTabWidget::plusTab()
{
    this->addTab(new QLabel("new tab", this), "new tab");
}


int main(int argc, char *argv[])
{

    QApplication app(argc, argv);

    QWidget *window = new QWidget;
    window->setWindowTitle("Add/Remove Tabs");


    QVBoxLayout *layout = new QVBoxLayout;

    myTabWidget *tab = new myTabWidget;
    QPushButton *pb_add = new QPushButton;

    pb_add->setText("+");
//    tab->addTab(new QLabel("new tab", tab), "new tab");

    int num = 0;

    QObject::connect(pb_add, SIGNAL(clicked()), tab, SLOT(plusTab()));


    layout->addWidget(tab);
    layout->addWidget(pb_add);

    window->setLayout(layout);

    window->show();

    return app.exec();

}

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
ernie
  опции профиля:
сообщение 29.1.2012, 14:16
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 130
Регистрация: 13.5.2010
Из: Irkutsk
Пользователь №: 1712

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




Репутация:   1  


вы зря наверное в .h файле таким образом реализуете функцию.
Вот так вроде должно работать.

class myTabWidget : public QTabWidget
{

Q_OBJECT

public slots:
void plusTab(){
this->addTab(new QLabel("new tab", this), "new tab");

};

};
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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


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