qt子窗口保留原来格式
时间: 2023-09-26 15:06:49 浏览: 36
你可以使用 Qt 的子窗口类来保留原来的格式。在 Qt 中,子窗口可以通过继承 QWidget 或 QDialog 类来创建。这样,你可以在子窗口中保留原始窗口的布局和样式。
首先,你需要创建一个新的子窗口类,并在类中重写需要保留格式的方法。例如,如果你想保留原始窗口的大小和位置,你可以重写 resizeEvent 和 moveEvent 方法。在这些方法中,你可以使用父窗口的大小和位置来设置子窗口的大小和位置。
下面是一个简单的示例代码:
```cpp
class MySubWindow : public QDialog {
public:
MySubWindow(QWidget *parent = nullptr)
: QDialog(parent) {
}
protected:
void resizeEvent(QResizeEvent *event) override {
QDialog::resizeEvent(event);
// 保留父窗口的大小
QSize parentSize = parentWidget()->size();
resize(parentSize);
}
void moveEvent(QMoveEvent *event) override {
QDialog::moveEvent(event);
// 保留父窗口的位置
QPoint parentPos = parentWidget()->pos();
move(parentPos);
}
};
```
在这个示例中,子窗口类 MySubWindow 继承自 QDialog 类,并重写了 resizeEvent 和 moveEvent 方法。在这些方法中,调用了父窗口的大小和位置,然后设置子窗口的大小和位置。
当你使用这个子窗口类创建一个新的子窗口时,它将保留父窗口的大小和位置。你可以根据自己的需求重写其他方法,以保留更多的格式。