以下是一个使用C++和Qt实现的类似例子,它展示了如何将一个QWidget子界面脱离主界面:
#include <QApplication>
#include <QWidget>
#include <QPushButton>
class SubWindow : public QWidget {
public:
SubWindow() {
setWindowTitle("Sub Window");
setGeometry(100, 100, 300, 200);
}
};
class MainWindow : public QWidget {
public:
MainWindow() {
setWindowTitle("Main Window");
setGeometry(100, 100, 300, 200);
QPushButton* btn = new QPushButton("Open Sub Window", this);
connect(btn, &QPushButton::clicked, this, &MainWindow::open_sub_window);
}
private:
void open_sub_window() {
SubWindow* sub_win = new SubWindow();
sub_win->setParent(nullptr); // 设置父组件为空指针,脱离主界面
sub_win->show();
}
};
int main(int argc, char* argv[]) {
QApplication app(argc, argv);
MainWindow win;
win.show();
return app.exec();
}
运行程序后,在主界面中点击“Open Sub Window”按钮会打开一个新的子界面窗口,并且该子界面窗口已经脱离了主界面。