![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
RazrFalcon |
![]()
Сообщение
#1
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Как я понял работу:
создаем на форму QTabWidget; затем создаем классы, наследники QWidget; в этих классам создаем нужные нам элементы GUI; в класс нашего главного окна добавляем что то в духе: .В итоге получаем по классу для каждого таба. Как я понял. Проблема в том, что я не пойму, как теперь обратится к главному окну из класса-таба. К примеру мне нужно изменить ячейку в таблице (2-й таб), а ввожу я в первом табе. Ну или банально изменить размер окна из таба. Ведь setGeometgy вызваный из первого таба не повлияет на главное окно. PS: табы только для примера, текущего, проблема больше в взаимосвязями с классами. Пример: есть 2-а класса. Главный: WallWindow, и класс таба: ListTab. Что бы что то изменить в табе ListTab из WallWindow, я делаю следующие: Это правильно?
Сообщение отредактировал RazrFalcon - 5.4.2011, 15:55 |
|
|
Алексей1153 |
![]()
Сообщение
#2
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2937 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
1) можно произвести свой класс от вкладки и там сохранять указатель на родителя нужного класса
tabWidget->addTab(new newTab(tabWidget), tr("Tab"));Language: cpp 2) сигналы и слоты |
|
|
RazrFalcon |
![]()
Сообщение
#3
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
1) не понял
2) как тогда изменить иконку главного окна кнопкой находящейся в табе? |
|
|
Алексей1153 |
![]()
Сообщение
#4
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2937 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
1) произвести класс-вкладку от QWidget, в конструкторе принять указатель на QTabWidget-родитель. Когда нужно, просто вызываешь нужный метод по указателю
2) а как это обычно делается ? Также, только в слоте, а слот соединён с сигналом кнопки |
|
|
RazrFalcon |
![]()
Сообщение
#5
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
А можно с примером кода. Так как я все равно не понял.
|
|
|
Алексей1153 |
![]()
Сообщение
#6
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2937 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
нет, пример сейчас я писать не в состоянии. А первый пункт - это классика C++ , в любом учебнике но нему есть
|
|
|
RazrFalcon |
![]()
Сообщение
#7
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
Спрошу еще раз, у всех.
Как вызвать функцию, которая определена в другом классе? Пример: .h Раскрывающийся текст
Мне нужно вызвать load_and_show(); в void settingTab::on_addFolderButton_clicked(){}. Как? |
|
|
wiz29 |
![]()
Сообщение
#8
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: ![]() ![]() ![]() |
Мне нужно вызвать load_and_show(); в void settingTab::on_addFolderButton_clicked(){}. Как? Для этого нужно иметь экземпляр класса ListTab в settingTab и вызвать соответствующий метод экземпляра класса (ListTab::on_addFolderButton_clicked). но на самом деле вопрос поставлен не вполне корректно. |
|
|
RazrFalcon |
![]()
Сообщение
#9
|
![]() Zombie Mod ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: ![]() ![]() ![]() |
А пример можно? Я ничего не понял.
|
|
|
wiz29 |
![]()
Сообщение
#10
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: ![]() ![]() ![]() |
тут нужно четко понимать что ты хочешь сделать. и не путать класс с экземпляром класса... Если QFileInfoList load_and_show() имеет статическую природу, тогда объяви эту функцию как статическую, если же данная функция имеет не статическую природу , тогда, в любом случае, придется иметь экземпляр одного класса в описании другого и с этим ничего не поделать.
А пример можно? Я ничего не понял. Для того куска кода который приведен выше , это будет выглядеть так:
Детали инициализации я здесь пропущу. |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 7.6.2023, 9:49 |