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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: table и tabs  (Прочитано 7345 раз)
semantic
Гость
« : Январь 05, 2012, 07:40 »

Здравствуйте. Подскажие пожалуйста, возможно ли у tablewidget реализовать вкладки (tabs)?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Январь 05, 2012, 11:09 »

самое простое - навешивать QTableWidget внутрь каждой вкладки QTabWidget
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
semantic
Гость
« Ответ #2 : Январь 05, 2012, 12:11 »

Этот вариант имеет место быть, просто в каждой вкладке будет всего один компонент-таблица, и будет не совсем удобно в дальнейшем работать, т.е. открою 10 вкладок, и надо будет узнавать активную вкладку, каким-то образом обратиться к таблице, ну думаю вариантов то и не много у меня!
Записан
antipart
Гость
« Ответ #3 : Январь 05, 2012, 12:19 »

если правильно понял.. и QTableWidget критично должен быть один
есть еще вариант использовать QTabBar и синхронизировать вкладки с перезагрузкой данных в виджете,
но такой вариант лучше применять  в связке с Model/View - просто апдейтить модель с разными условиями
или разные модели подключать к вьюхе... где-то так. Улыбающийся
Записан
semantic
Гость
« Ответ #4 : Январь 05, 2012, 12:40 »

если правильно понял.. и QTableWidget критично должен быть один
есть еще вариант использовать QTabBar и синхронизировать вкладки с перезагрузкой данных в виджете,
но такой вариант лучше применять  в связке с Model/View - просто апдейтить модель с разными условиями
или разные модели подключать к вьюхе... где-то так. Улыбающийся

да желательно чтоб был table один(так будет намного проще, и не надо их каждый раз создавать)

про Ваш вариант не понял.
Записан
antipart
Гость
« Ответ #5 : Январь 05, 2012, 12:57 »

размещаешь на форму QTabBar и QTableWidget
у QTabBar есть сигнал QTabBar::currentChanged ( int index )
в своем слоте в зависимости от значения index загружаешь те или иные данные в  QTableWidget
приблизительно так:
Код:
 switch(index)
{
   case 0: getMyData1(); break;
   case 1: getMyData2(); break;
}
в getMyData() стираешь данные в QTableWidget и вставляешь новые

но.. опять-таки в данном случае лучше посмотреть в сторону Model/View
Записан
semantic
Гость
« Ответ #6 : Январь 05, 2012, 13:03 »


Код:
 switch(index)
{
   case 0: getMyData1(); break;
   case 1: getMyData2(); break;
}
дело то в том что, количество вкладок динамическое, такая проверка не пойдет.
Записан
antipart
Гость
« Ответ #7 : Январь 05, 2012, 13:18 »

дело то в том что, количество вкладок динамическое, такая проверка не пойдет.
в первом вашем посте это не указано... надо более подробно описывать задачу...

хорошо, если вкладки динамические ... а данные в них однотипные али нет?
т.е. сколько у вас обработчиков один или по больше? каким образом вы формируете набор данных на
каждой новой вкладке?
Записан
semantic
Гость
« Ответ #8 : Январь 05, 2012, 14:23 »


хорошо, если вкладки динамические ... а данные в них однотипные али нет?
т.е. сколько у вас обработчиков один или по больше? каким образом вы формируете набор данных на
каждой новой вкладке?
в каждой вкладке будет тока таблица, и все действия тока с ней.
Записан
antipart
Гость
« Ответ #9 : Январь 05, 2012, 14:32 »

в каждой вкладке будет тока таблица, и все действия тока с ней.
это понятно....
а данные которыми заполняете таблицу вы как формируете?
если вкладок несколько, то подразумевается, что данные меняются...
а если вкладки формируются динамически, то и данные должны также формироваться(динамически)
т.е. на момент появления новой вкладки вы уже должны знать чем заполнить таблицу на ней...
я правильно понял?
Записан
semantic
Гость
« Ответ #10 : Январь 05, 2012, 14:46 »

Цитировать
а данные которыми заполняете таблицу вы как формируете?
данные это просто list QString-а, который мне будет известен
Цитировать
если вкладок несколько, то подразумевается, что данные меняются...
т.е. на момент появления новой вкладки вы уже должны знать чем заполнить таблицу на ней...
я правильно понял?
все верно, так и есть, при создании вкладки я уже буду знать чем заполнить таблицу
Записан
antipart
Гость
« Ответ #11 : Январь 05, 2012, 15:45 »

Цитировать
данные это просто list QString-а, который мне будет известен
ну здесь придется  хранить эти листы если хочешь использовать один виджет ,
причем не важно QTableWidget это ил Model/View
например так:
Код:
QList<QStringList> hashList
т.е. при добавлении новой вкладки добавляешь и новый QStringList в hashList
а пото делаешь так как я писал раньше
Код:
  getMyData(hashList.at(index);
только в слоте можно уже будет обойтись без свича... Подмигивающий
соответственно при удалении вкладки надо и QStringList в hashList удалять соответсвующий...
Записан
antipart
Гость
« Ответ #12 : Январь 05, 2012, 16:16 »

а если еще буду и столбцы меняться то надо будет хранить по два листа для каждой вкладки
например
Код:
QList<QPair<QStringList QStringList>> hashList
первый это headerList второй dataList
думаю так...
Записан
semantic
Гость
« Ответ #13 : Январь 06, 2012, 07:04 »

antipart т.е. всеже использовать qtabba
Записан
semantic
Гость
« Ответ #14 : Январь 06, 2012, 08:18 »

вроде да, такой вариант получается! пасиб за помощь.
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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