вы должны поместить все свои виджеты в макет, макет (ы) автоматически изменяет размер всех ваших виджетов внутри QMainWindow, когда пользователь вносит какие-либо изменения в размер QMainWindow, вы можете добавить макет как через Qt Creator IDE, так и через кодирование.
ОБНОВИТЬ:
если вы добавляете макеты в Qt Creator, макеты автоматически кодируются в файле moc, и пользователю не нужно вносить какие-либо изменения в их поведение посредством кодирования.
но через кодирование в конструкторе класса:
QVBoxLayout *layout = new QVBoxLayout(parent);
layout->addWidget(widget1);
layout->addWidget(widget2);
layout->addWidget(widget3);
this->setLayout(layout);
но если вы хотите изменить шрифт QLabel, это делается с помощью resizeEvent в QMainWindow, поэтому для любого изменения размера MainWindow срабатывает resizeEvent, поэтому вы используете этот код:
в mainwindow.h вы объявляете resizeEvent:
protected:
void resizeEvent(QResizeEvent* event);
в mainwindow.cpp реализовать resizeEvent:
void MainWindow::resizeEvent(QResizeEvent *event)
{
MainWindow::resizeEvent(event);
if(this)
{
// QLabel process
}
}
person
Reza Ebrahimi
schedule
23.01.2013
scale
в предоставленномQPainter
. Я не уверен, что это каскадируется через подвиджеты, и даже если это так, границы и т. д. также будут масштабироваться. - person Tim Meyer   schedule 21.01.2013