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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: QTabWidget  (Прочитано 8961 раз)
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« : Май 04, 2011, 15:15 »

Подскажите пожалуйста, а как можно листать ТАБЫ
Я вот создал три штуки, а вот на следующий попасть не могу В замешательстве
Код
C++ (Qt)
myTab = new QTabWidget(this);
   myWidget = new QWidget;
   myWidget2 = new QWidget;
   myWidget3 = new QWidget;
 
   myLayBoxWidget = new QVBoxLayout;
 
 
 
   myLayBoxWidget->addWidget(myTab);
 
   myTab->addTab(myWidget,QString("MY"));
   myTab->addTab(myWidget2,QString("MY2"));
   myTab->addTab(myWidget3,QString("MY3"));
 
Наверное надо использовать сигнал
     void currentChanged(int))
А какой слот к нему нужно написатьНепонимающий
« Последнее редактирование: Май 04, 2011, 15:21 от Пантер » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Май 04, 2011, 15:20 »

QTabWidget::setCurrentIndex (int index) или QTabWidget:setCurrentWidget (QWidget *widget).
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #2 : Май 04, 2011, 15:25 »

Что-то не помогает

connect(myTab,SIGNAL(currentChanged(int)),this,SLOT(setCurrentIndex(int)));
так надо???
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #3 : Май 04, 2011, 15:26 »

connect(myTab,SIGNAL(currentChanged(int)),myTab,SLOT(setCurrentIndex(int)));
и так тоже ничего Непонимающий
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #4 : Май 04, 2011, 15:30 »

Табы и так "листаются" мышкой. Что тебе конкретно надо?
Код, приведенные тобой, примерный? А то у тебя 3 одинаковых таба получается и, конечно, переключения ты не увидишь.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #5 : Май 04, 2011, 15:40 »

Нет я сам писал. Т.е табы должны быть разные?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #6 : Май 04, 2011, 15:44 »

Какой Widget добавляешь через addTab, тот и увидишь при переключении на эту вкладку.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #7 : Май 04, 2011, 15:50 »

Делаю вот , вкладки не листаются Непонимающий Непонимающий Непонимающий
MyWindow::MyWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MyWindow)
{

    myTab = new QTabWidget(this);
    myWidget = new QWidget;
    myWidget2 = new QTextEdit;
    myWidget3 = new QWidget;

    myLayBoxWidget = new QVBoxLayout;



    myLayBoxWidget->addWidget(myTab);

    myTab->addTab(myWidget,QString("MY"));
    myTab->addTab(myWidget2,QString("MY2"));
    myTab->addTab(myWidget3,QString("MY3"));

    connect(myTab,SIGNAL(currentChanged(int)),myTab,SLOT(setCurrentIndex(int)));

    ui->setupUi(this);
}

MyWindow::~MyWindow()
{
    delete ui;
}
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #8 : Май 04, 2011, 16:05 »

Код
C++ (Qt)
MyWindow::MyWindow(QWidget *parent) :
   QMainWindow(parent),
   ui(new Ui::MyWindow)
{
   ui->setupUi(this);
 
   myTab = new QTabWidget(this);
 
   myWidget = new QWidget;
   myWidget2 = new QTextEdit;
   myWidget3 = new QWidget;
 
   myLayBoxWidget = new QVBoxLayout;
   myLayBoxWidget->addWidget(myTab);
   setLayout (myLayBoxWidget);
 
   myTab->addTab(myWidget,QString("MY"));
   myTab->addTab(myWidget2,QString("MY2"));
   myTab->addTab(myWidget3,QString("MY3"));
}
 
MyWindow::~MyWindow()
{
   delete ui;
}
 
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #9 : Май 04, 2011, 16:08 »

Спасибо работает Смеющийся
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #10 : Май 04, 2011, 16:42 »

Почему он выдает ошибку:
QWidget::setLayout: Attempting to set QLayout "" on MyWindow "", which already has a layout
когда код:
setLayout (myLayBoxWidget)
используешь
и все равно не видно TextEdit при перелистовании
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #11 : Май 04, 2011, 16:51 »

Давай сюда архив с исходниками, я сделаю как нужно, потому что объяснять долго.
А лучше, почитай книги / посмотри примеры.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #12 : Май 04, 2011, 17:01 »

Вот Улыбающийся
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #13 : Май 04, 2011, 17:01 »

и Улыбающийся
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #14 : Май 04, 2011, 17:02 »

Заранее СПАСИБО Улыбающийся
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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