Я сделал, пока так (в тестовом проекте) в окне располагаются, вверху тулбар внизу виджет с кнопками
fs - Переход в full screen. ns - normal screen.
label - картинка(эмуляция моего тяжелого виджета)
verticalLayout - главный компоновщик
cpp
MW::MW() {
setupUi(this);
connect(actionFs, SIGNAL(triggered()), this, SLOT(fs()));
connect(actionNs, SIGNAL(triggered()), this, SLOT(ns()));
}
void MW::fs()
{
verticalLayout->removeWidget(label);
label->move(10,10); label->resize(size()-QSize(20,20)); label->show();
verticalLayout->addItem(si = new QSpacerItem(400,200,QSizePolicy::Maximum, QSizePolicy::Maximum));
// showFullScreen();
}
void MW::ns()
{
verticalLayout->removeItem(si);
delete si;
verticalLayout->insertWidget(0,label);
// showNormal();
}
h
class MW:public QMainWindow, public Ui::mainForm
{
Q_OBJECT
QSpacerItem *si;
public:
MW();
private slots:
void fs();
void ns();
};
уже лучше и виджет не ресайзится при появлении тулбара(если его вытаскивать и затаскивать в форму), но тем не менее картинка сдвигается вниз когда я его располагаю вверху.
Может тулбар можно в отдельный виджет засунуть? нужно чтобы в полном экране его видно не было, а когда он появлялся то просто перекрывал все что внизу.