Qt 子窗体嵌入父窗体
1.创建个子窗体QDialog.在子窗体构造函数添加
Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); this->setParent(parent); this->setWindowFlags(Qt::CustomizeWindowHint|Qt::FramelessWindowHint); this->hide(); }
2.在父窗体调用子窗体
Dialog *dlg; void MainWindow::on_pushButton_clicked() { dlg=new Dialog(this); dlg->show(); //在父窗体位置 dlg->move(10,50); //子窗体大小 dlg->resize(400,100); }
如果拖动父窗体,子窗体跟着改变大小;父窗体最大化等等,需要写代码改变子窗体的大小。
void MainWindow::resizeEvent(QResizeEvent *e) { int realWidth = this->width(); int realHeight = this->height(); if(dlg!=NULL) { dlg->resize(realWidth-20,realHeight-60); } }
这样就可以把子窗体嵌入到父窗体。