使用窗口大小改变事件, 还是不行:
void ChangeCustomerInfoDialog::resizeEvent(QResizeEvent *event) {
qDebug() << "窗口大小改变了";
qDebug() << size();
QSize screenSize = QApplication::desktop()->size();
QSize widgetSize = this->size();
int x = (screenSize.width() - widgetSize.width()) / 2;
int y = (screenSize.height() - widgetSize.height()) / 2;
qDebug() << QString("移动窗口到[x: %1, y: %2]").arg(x).arg(y);
this->move(x, y);
}
窗口大小改变后的输出信息:
窗口大小改变了
QSize(240, 156)
"移动窗口到[x: 600, y: 372]" // 第一次显示窗口, 移动成功.
Delete LoginWidget
窗口大小改变了
QSize(2, 2)
"移动窗口到[x: 719, y: 449]" // 删除第一个组件, 移动成功
窗口大小改变了
QSize(356, 513)
"移动窗口到[x: 542, y: 193]" // 再添加一个组件后, 也进行了移动, 但是移动不成功, 此时输出计算结果是正确的, 但是窗口移动的使用的大小通过观察系统仍是使用QSize(2, 2)来计算, 非常奇怪.