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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: [Решено]Как сделать QTextEdit,принадлежащий QDockWidget,невидимым до события?  (Прочитано 3349 раз)
#pragma
Гость
« : Декабрь 12, 2009, 01:26 »

Есть такая функция
Код
C++ (Qt)
 void MainWindow::createDockWindow()
 {
    QFont font;
    font.setFixedPitch(true);
    font.setPointSize(10);
    font.setStyleHint(QFont::System,QFont::PreferAntialias);
 
    QTextCharFormat format;
    format.setForeground(Qt::red);
 
    buildLog->setReadOnly(true);
    buildLog->setWordWrapMode(QTextOption::WrapAnywhere);
    buildLog->setFont(font);
    buildLog->mergeCurrentCharFormat(format);
 
    addDockWidget(Qt::RightDockWidgetArea, dock);
    dock->setWidget(buildLog);
    fileMenu->addAction(dock->toggleViewAction());
 }
И нужно ,чтобы buildLog появлялся только по сигналу.Как его сделать полностью невидимым? Я перепробовал функции setVisible,setEnabled,hide,setHidden но ничего не помогает - на QDockWidget-е всё равно видны крестик закрытия ещё значки,причём они наезжают на другие элементы окна.Сделать этот элемент полностью невидимым не получается.  Эта функция вызывается в самом начале,наверное,можно по событию вызывать addDockWidget,но это мне кажется немного неестественным. Может,есть какой-то другой способ?
« Последнее редактирование: Декабрь 12, 2009, 21:30 от #pragma » Записан
Dendy
Гость
« Ответ #1 : Декабрь 12, 2009, 04:08 »

Крестик и другие элементы не есть часть внутреннего окна, это кусочки самого дока, скрыть их можно установкой флагов QDockWidget::DockWidgetFeature. Что именно вы хотите сделать невидимым? Как вариант можно прятать и показывать весь док.
Записан
aarlan
Гость
« Ответ #2 : Декабрь 12, 2009, 15:25 »

Не совсем понятно, что ты хочешь - сделать невидимым buildLog, при это dock видимый, а по какому-то сигналу(какому?) сделать его видимым?
Записан
#pragma
Гость
« Ответ #3 : Декабрь 12, 2009, 19:10 »

Крестик и другие элементы не есть часть внутреннего окна, это кусочки самого дока, скрыть их можно установкой флагов QDockWidget::DockWidgetFeature. Что именно вы хотите сделать невидимым? Как вариант можно прятать и показывать весь док.
Спасибо,я поищу функции для этого.
Не совсем понятно, что ты хочешь - сделать невидимым buildLog, при это dock видимый, а по какому-то сигналу(какому?) сделать его видимым?
Его (buildLog) нужно показывать только тогда,когда есть сообщение пользователю,а точнее - ошибка,генерируемая другой программой.А убирать его каждый раз перед запуском этой программы.Я думаю,что нет надобности в отображении поля для ошибок/сообщений,когда их нет. В-общем,это специфика моей программы,если интересно,могу дать ссылку,исходники открыты(хотя и убоги,я же просто учусь).

Все получилось,спасибо Dendy за подсказку.
« Последнее редактирование: Декабрь 12, 2009, 21:32 от #pragma » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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