crossplatform.ru

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

> Работа с QTabWidget, взаимодействие между классами.
RazrFalcon
  опции профиля:
сообщение 5.4.2011, 14:46
Сообщение #1


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

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




Репутация:   212  


Как я понял работу:
создаем на форму QTabWidget;
затем создаем классы, наследники QWidget;
в этих классам создаем нужные нам элементы GUI;
в класс нашего главного окна добавляем что то в духе:
tabWidget = new QTabWidget;
tabWidget->addTab(new newTab(), tr("Tab"));
.
В итоге получаем по классу для каждого таба. Как я понял.

Проблема в том, что я не пойму, как теперь обратится к главному окну из класса-таба.
К примеру мне нужно изменить ячейку в таблице (2-й таб), а ввожу я в первом табе.
Ну или банально изменить размер окна из таба. Ведь setGeometgy вызваный из первого таба не повлияет на главное окно.

PS: табы только для примера, текущего, проблема больше в взаимосвязями с классами.


Пример:
есть 2-а класса. Главный: WallWindow, и класс таба: ListTab.
Что бы что то изменить в табе ListTab из WallWindow, я делаю следующие:
void WallWindow::something()
{
    //...
    ListTab my;
    my.startButton->setText("Start");
    //...
}
Это правильно?

Сообщение отредактировал RazrFalcon - 5.4.2011, 15:55
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
RazrFalcon
  опции профиля:
сообщение 11.4.2011, 14:20
Сообщение #2


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

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




Репутация:   212  


Вот в чем проблема:
settingTab::settingTab(QWidget *parent) : QWidget(parent)
{
  settings = new QSettings(QSettings::IniFormat, QSettings::UserScope,
                           "wallpapers-changer", "wallchanger");

  addFolderButton = new QPushButton("Add folder",this);
  connect(addFolderButton, SIGNAL(clicked()), this, SLOT(on_addFolderButton_clicked()));
}

void settingTab::on_addFolderButton_clicked()
{
  QString selectedDir = QFileDialog::getExistingDirectory(this,
                                                          "Open Image(s)",
                                                          "/media/data",
                                                          QFileDialog::ShowDirsOnly);
  folderListWidget->addItem(selectedDir);
  dirList.append(selectedDir);

  if (!dirList.isEmpty())
    settings->setValue("settings/dirList",dirList);

  if (!settings->value("settings/dirList").toStringList().isEmpty()) {
    m_pListTab->load_and_show();
  }
}

не создается файл конфигов, settings. А если закомментить m_pListTab->load_and_show(); - то создается. А load_and_show() как раз его и читает. И получается, что оно читает файл который не создался, и программа убивается.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- RazrFalcon   Работа с QTabWidget   5.4.2011, 14:46
- - Алексей1153   1) можно произвести свой класс от вкладки и там со...   5.4.2011, 16:57
- - RazrFalcon   1) не понял 2) как тогда изменить иконку главного ...   5.4.2011, 17:29
- - Алексей1153   1) произвести класс-вкладку от QWidget, в конструк...   5.4.2011, 18:16
- - RazrFalcon   А можно с примером кода. Так как я все равно не по...   5.4.2011, 19:57
- - Алексей1153   нет, пример сейчас я писать не в состоянии. А перв...   5.4.2011, 20:03
- - RazrFalcon   Спрошу еще раз, у всех. Как вызвать функцию, котор...   11.4.2011, 13:22
|- - wiz29   Цитата(RazrFalcon @ 11.4.2011, 14:22) Мне...   11.4.2011, 13:38
|- - RazrFalcon   А пример можно? Я ничего не понял.   11.4.2011, 13:39
- - wiz29   тут нужно четко понимать что ты хочешь сделать. и ...   11.4.2011, 13:46
- - RazrFalcon   Блин! Оно и до этого работало. Программа падал...   11.4.2011, 14:04
- - wiz29   вообще что то несвязное, код в студию. (весь)   11.4.2011, 14:09
- - RazrFalcon   Вот в чем проблема: settingTab::settingTab...   11.4.2011, 14:20
- - wiz29   программа убивается на строке: m_pListTab->loa...   11.4.2011, 14:27
- - RazrFalcon   Нет. При попытке прочесть QSettings в load_and_sho...   11.4.2011, 14:32
- - wiz29   возможно кинуть код проекта архивом, или архивом ц...   11.4.2011, 14:42
- - RazrFalcon   Еще сырой.   11.4.2011, 14:47
- - wiz29   Проблема банальна, у тебя не инициализирована m_pL...   11.4.2011, 15:02
- - RazrFalcon   Так что ли? m_pListTab = new ListTab;   11.4.2011, 15:04
- - wiz29   settingTab::settingTab(QWidget *parent...   11.4.2011, 15:10
- - RazrFalcon   Я так делал. Но таблица в первом табе не заполняет...   11.4.2011, 15:23
|- - wiz29   Цитата(RazrFalcon @ 11.4.2011, 16:23) Я т...   11.4.2011, 15:36
- - RazrFalcon   Ура! Спасибо. Работает как надо. Я бы сам не д...   11.4.2011, 15:46
- - RazrFalcon   И снова эти табы! Теперь проблема с Ui .h Раск...   11.4.2011, 20:16
- - wiz29   естественно не работает, потому что не правильно д...   12.4.2011, 8:25
- - RazrFalcon   Да знаю что не правильно. Тут то табы уже созданы....   12.4.2011, 12:59
- - wiz29   Сделай проще архитектурно, у тебя есть один диалог...   12.4.2011, 13:31
|- - RazrFalcon   Да-да. Это просто тестовый проект. То есть, как я...   12.4.2011, 13:31
|- - wiz29   Цитата(RazrFalcon @ 12.4.2011, 14:31) То ...   12.4.2011, 13:39
- - RazrFalcon   Тогда получается, что работать с дизайнером действ...   12.4.2011, 13:54
- - wiz29   Дизайнер избавляет от "груды" однотипног...   12.4.2011, 14:56


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


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




RSS Текстовая версия Сейчас: 25.4.2024, 23:22