We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SARibbonBard 版本:最新版(未使用qwk) qt版本:5.15.2 问题描述:MdiArea窗口最大化显示异常 使用方法如下:新建MainForm,其继承MenuSARibbon(par)
问题: 在TabWidget中添加的mdiarea窗口在最大化时,右上角显示异常,该问题该如何规避
mdiarea window code: #include "tracewindow.h" #include "ui_tracewindow.h"
#include
QTextEdit *TraceWindow::log_text = nullptr; QMdiSubWindow *TraceWindow::sub_window_log = nullptr; QTextEdit *TraceWindow::parse_data_text = nullptr; QMdiSubWindow *TraceWindow::sub_window_parse_data = nullptr; QTextEdit *TraceWindow::origin_text = nullptr; QMdiSubWindow *TraceWindow::sub_window_origin_data = nullptr;
TraceWindow::TraceWindow(QWidget *parent) : QWidget(parent), ui(new Ui::TraceWindow) { ui->setupUi(this); ui->mdiArea->setBackground(Qt::NoBrush); ui->mdiArea->setStyleSheet("background-color: #c7d1e1"); creat_windw(windows_type_t::log_data); creat_windw(windows_type_t::parse_data); creat_windw(windows_type_t::origin_data); connect(ui->mdiArea, &QMdiArea::subWindowActivated, this, &TraceWindow::onMdiAreaSubWindowActivated); }
TraceWindow::~TraceWindow() { delete ui; }
void TraceWindow::creat_windw(windows_type_t window_type) { switch(window_type) { case windows_type_t::log_data: { if(log_text != nullptr && sub_window_log != nullptr) { //已经存在log窗口,无需新建 qDebug()<<"log window alread exit"; } else { log_text = new QTextEdit(); sub_window_log = new QMdiSubWindow(); sub_window_log->setWidget(log_text); sub_window_log->setWindowIcon(QIcon(":/icon/icon/log.svg")); sub_window_log->setStyleSheet("background-color: #ffffff"); sub_window_log->resize(300,100); sub_window_log->setWindowTitle("Log"); ui->mdiArea->addSubWindow(sub_window_log); // 如果你用qwk,你需要安装mdi窗口的最大最小化按钮到frameless框架中,你需要绑定此槽函数 connect(sub_window_log, &QMdiSubWindow::windowStateChanged, this, &TraceWindow::onSubWindowStateChanged); }
break; } case windows_type_t::parse_data: { if(parse_data_text != nullptr && sub_window_parse_data != nullptr) { //已经存在log窗口,无需新建 qDebug()<<"log window alread exit"; } else { parse_data_text = new QTextEdit(); sub_window_parse_data = new QMdiSubWindow(); sub_window_parse_data->setWidget(parse_data_text); sub_window_parse_data->setWindowIcon(QIcon(":/icon/icon/log.svg")); sub_window_parse_data->setStyleSheet("background-color: #ffffff"); sub_window_parse_data->resize(300,100); sub_window_parse_data->setWindowTitle("Log"); ui->mdiArea->addSubWindow(sub_window_parse_data); connect(sub_window_parse_data, &QMdiSubWindow::windowStateChanged, this, &TraceWindow::onSubWindowStateChanged); } break; } case windows_type_t::origin_data: { if(origin_text != nullptr && sub_window_origin_data != nullptr) { //已经存在log窗口,无需新建 qDebug()<<"log window alread exit"; } else { origin_text = new QTextEdit(); sub_window_origin_data = new QMdiSubWindow(); sub_window_origin_data->setWidget(origin_text); sub_window_origin_data->setWindowIcon(QIcon(":/icon/icon/log.svg")); sub_window_origin_data->setStyleSheet("background-color: #ffffff"); sub_window_origin_data->resize(300,100); sub_window_origin_data->setWindowTitle("Log"); ui->mdiArea->addSubWindow(sub_window_origin_data); connect(sub_window_origin_data, &QMdiSubWindow::windowStateChanged, this, &TraceWindow::onSubWindowStateChanged); } break; } default: { break; } }
}
void TraceWindow::Print_Info_Log(QString log) { if(log_text != nullptr && sub_window_log != nullptr) { log_text->append(log); } else { qDebug()<<"log window not exit"; } }
/**
The text was updated successfully, but these errors were encountered:
No branches or pull requests
SARibbonBard 版本:最新版(未使用qwk)




qt版本:5.15.2
问题描述:MdiArea窗口最大化显示异常
使用方法如下:新建MainForm,其继承MenuSARibbon(par)
问题:
在TabWidget中添加的mdiarea窗口在最大化时,右上角显示异常,该问题该如何规避
mdiarea window code:
#include "tracewindow.h"
#include "ui_tracewindow.h"
#include
QTextEdit *TraceWindow::log_text = nullptr;
QMdiSubWindow *TraceWindow::sub_window_log = nullptr;
QTextEdit *TraceWindow::parse_data_text = nullptr;
QMdiSubWindow *TraceWindow::sub_window_parse_data = nullptr;
QTextEdit *TraceWindow::origin_text = nullptr;
QMdiSubWindow *TraceWindow::sub_window_origin_data = nullptr;
TraceWindow::TraceWindow(QWidget *parent) :
QWidget(parent),
ui(new Ui::TraceWindow)
{
ui->setupUi(this);
ui->mdiArea->setBackground(Qt::NoBrush);
ui->mdiArea->setStyleSheet("background-color: #c7d1e1");
creat_windw(windows_type_t::log_data);
creat_windw(windows_type_t::parse_data);
creat_windw(windows_type_t::origin_data);
connect(ui->mdiArea, &QMdiArea::subWindowActivated, this, &TraceWindow::onMdiAreaSubWindowActivated);
}
TraceWindow::~TraceWindow()
{
delete ui;
}
void TraceWindow::creat_windw(windows_type_t window_type)
{
switch(window_type)
{
case windows_type_t::log_data:
{
if(log_text != nullptr && sub_window_log != nullptr)
{
//已经存在log窗口,无需新建
qDebug()<<"log window alread exit";
}
else
{
log_text = new QTextEdit();
sub_window_log = new QMdiSubWindow();
sub_window_log->setWidget(log_text);
sub_window_log->setWindowIcon(QIcon(":/icon/icon/log.svg"));
sub_window_log->setStyleSheet("background-color: #ffffff");
sub_window_log->resize(300,100);
sub_window_log->setWindowTitle("Log");
ui->mdiArea->addSubWindow(sub_window_log);
// 如果你用qwk,你需要安装mdi窗口的最大最小化按钮到frameless框架中,你需要绑定此槽函数
connect(sub_window_log, &QMdiSubWindow::windowStateChanged, this, &TraceWindow::onSubWindowStateChanged);
}
}
void TraceWindow::Print_Info_Log(QString log)
{
if(log_text != nullptr && sub_window_log != nullptr)
{
log_text->append(log);
}
else
{
qDebug()<<"log window not exit";
}
}
/**
/
void TraceWindow::onMdiAreaSubWindowActivated(QMdiSubWindow window)
{
#if SARIBBON_USE_3RDPARTY_FRAMELESSHELPER
if (window) {
SARibbonBar* ribbon = ribbonBar();
QWidget* cw = ribbon->cornerWidget(Qt::TopRightCorner);
if (cw && cw != m_mdiCornerWidget) {
qDebug() << "set mdi corner widget in frameless|onMdiAreaSubWindowActivated";
setFramelessHitTestVisible(cw);
m_mdiCornerWidget = cw;
}
}
#endif
}
/**
/
void TraceWindow::onSubWindowStateChanged(Qt::WindowStates oldState, Qt::WindowStates newState)
{
#if SARIBBON_USE_3RDPARTY_FRAMELESSHELPER
if (newState.testFlag(Qt::WindowMaximized)) {
SARibbonBar ribbon = ribbonBar();
QWidget* cw = ribbon->cornerWidget(Qt::TopRightCorner);
if (cw && cw != m_mdiCornerWidget) {
qDebug() << "set mdi corner widget in frameless|onSubWindowStateChanged";
setFramelessHitTestVisible(cw);
m_mdiCornerWidget = cw;
}
}
#endif
}
The text was updated successfully, but these errors were encountered: