Система QT Advanced Docking: как добавить скрытые/закрытые QTWidgets?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Система QT Advanced Docking: как добавить скрытые/закрытые QTWidgets?

Сообщение Anonymous »

Я использую расширенную систему стыковки QT https://github.com/githubuser0xFFFF/Qt- ... ing-System, которая кажется довольно зрелой.
У меня есть этот код для добавьте QWidgets в CDockManager, а затем создайте ссылку на ViewMenu, чтобы я мог включать и выключать отображение; когда я добавляю QWidget, он сразу отображается на холсте.
#include

//---------------------------------------------------------------------------
cTestWidget::cTestWidget(QWidget *parent) :
QWidget(parent),

m_DockManager(),

m_Ui(new Ui::TestWidget),

m_MenuBar(nullptr),
m_ViewMenu(nullptr),
//---------------------------------------------------------------------------
{
m_Ui->setupUi(this);
m_MenuBar = new QMenuBar(this);
m_ViewMenu = m_MenuBar->addMenu("View");

this->layout()->setMenuBar(m_MenuBar);

m_DockManager = new cDockManagerEx();
m_DockManager->setStyleSheet("");

m_Ui->addWidget(m_DockManager);

CreateAndAddDockWidget(new QWidget(this), QString("TestTitel"))
}

//---------------------------------------------------------------------------
void cTestWidget::CreateAndAddDockWidget(QWidget *widget, QString title)
//---------------------------------------------------------------------------
{
m_DockManager->addDockWidgetTab(ads::CenterDockWidgetArea,
CreateDockWidget(widget,
std::move(title)));
}

//---------------------------------------------------------------------------
ads::CDockWidget *cTestWidget::CreateDockWidget(QWidget *widget, QString title)
//---------------------------------------------------------------------------
{
auto dockWidget = new ads::CDockWidget(title);
dockWidget->setWidget(widget, ads::CDockWidget::ForceNoScrollArea);
dockWidget->setMinimumSizeHintMode(ads::CDockWidget::MinimumSizeHintFromContent);
auto action = dockWidget->toggleViewAction();
action->setVisible(false);
m_ViewMenu->addAction(action);

return dockWidget;
}

Однако мне не удалось добавить QWidget, который не отображается напрямую.
//Attempted 1: (isVisible changes back to true, after 'addDockWidgetTab')
//---------------------------------------------------------------------------
void cTestWidget::CreateAndAddDockWidgetHidden(QWidget *widget, QString title)
//---------------------------------------------------------------------------
{
auto dockWidget = CreateDockWidget(widget, std::move(title));
dockWidget->setVisible(false);
m_DockManager->addDockWidgetTab(ads::CenterDockWidgetArea, dockWidget);
}

//Attempted 2: (i get the result which i want,
//but because the widget is displayed for a short time
//after ‘addDockWidgetTab’ it does not look clean)
//---------------------------------------------------------------------------
void cTestWidget::CreateAndAddDockWidgetHidden(QWidget *widget, QString title)
//---------------------------------------------------------------------------
{
m_DockManager->addDockWidgetTab(ads::CenterDockWidgetArea,
CreateDockWidget(widget, title));
m_DockManager->findDockWidget(title)->toggleView(false);

}


Подробнее здесь: https://stackoverflow.com/questions/793 ... d-qwidgets
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Система QT Advanced Docking: как добавить скрытые/закрытые QWidgets?
    Anonymous » » в форуме C++
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Система QT Advance Docking: как заблокировать плавающие доки внутри окна
    Anonymous » » в форуме C++
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • QtWidgets.QApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling, True) вообще не работает на Python
    Anonymous » » в форуме Python
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Dll weifenluo.winformsui.docking для Linux
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Ошибка при попытке установить `docking` "Повторная попытка (Retry(total=4, ...."
    Anonymous » » в форуме Python
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»