Название: QTabWidget как заблокировать закрытие вкладки. Отправлено: Mixolap от Май 15, 2009, 21:31 Есть QTabWidget. Нужно чтоб пользователь мог закрыть любую вкладку кроме первой.
Название: Re: QTabWidget как заблокировать закрытие вкладки. Отправлено: samuil от Май 17, 2009, 11:18 ставишь элемент управления, цепляешь на него слот с "removeTab ( int index )" и условия по "index" . или я не понял проблему?
Название: Re: QTabWidget как заблокировать закрытие вкладки. Отправлено: Mixolap от Май 17, 2009, 13:46 вот как из этого слота запретить закрытие?
ведь он срабатывает уже после того как закрыта вкладка. Название: Re: QTabWidget как заблокировать закрытие вкладки. Отправлено: break от Май 17, 2009, 14:08 указанный слот будет висеть на всех вкладках и когда будетзакрываться 2-я из 2-х то слот вызовется и заблокирует операцию закрытия для первой, когда добавится аналогичный слот разблокирует.
еще по таймеру можно вызывать (но это хуже) или уже я что-то не понимаю - задача не то что элементарная - вообще ее нет Название: Re: QTabWidget как заблокировать закрытие вкладки. Отправлено: Mixolap от Май 18, 2009, 12:48 Дело в том что могут закрыть первую слева вкладку, а она должна оставаться постоянно... то есть можно закрыть вторую слева, третью, но не первую.
Название: Re: QTabWidget как заблокировать закрытие вкладки. Отправлено: EhTemka от Май 18, 2009, 14:39 Код
Переопредели эту функцию и делай там проверку. Код
Название: Re: QTabWidget как заблокировать закрытие вкладки. Отправлено: Mixolap от Май 18, 2009, 17:01 EhTemka - вот не прокатывает такой вариант так как:
void QTabWidget::tabRemoved ( int index ) [virtual protected] This virtual handler is called after a tab was removed from position index. функция вызывается после(!) того как таб удален. То есть ее переопределение все равно позволяет закрыть вкладку... Название: Re: QTabWidget как заблокировать закрытие вкладки. Отправлено: Mixolap от Май 18, 2009, 17:07 А вот переопределение
void QTabWidget::removeTab(int index) помогло в моем случае.... хотя она не virtual. EhTemka - пасиб за подкинутую идею. Жаль без наследования не обошлось и крестик на ней все равно висеть остался... Название: Re: QTabWidget как заблокировать закрытие вкладки. Отправлено: fuCtor от Август 30, 2010, 09:46 Сори за археологию ) но может пригодится кому-нибудь:
убирание кнопки закрытия с таба => невозможность закрыть таб Код
Где tabs_ наш QTabBar Название: Re: QTabWidget как заблокировать закрытие вкладки. Отправлено: ChromVanadium от Сентябрь 16, 2010, 14:14 У меня так (закрываются все, кроме первой):
на tabWidget правой кнопкой -> перейти к слоту... -> tabCloseRequested(int) и далее текст слота: void SomeForm::on_tabWidget_tabCloseRequested(int index) { if (index>0) ui->tabWidget->removeTab(index); } |