要解决这个问题,你可以使用信号和槽机制来实现。

首先,在自定义的QWidget窗口部件中,定义一个信号,用于在点击按钮时发出信号:

class MyWidget : public QWidget
{
    Q_OBJECT

signals:
    void buttonClicked();

public:
    explicit MyWidget(QWidget *parent = nullptr);
    // ...
};

然后,在主页面中,连接这个信号到一个槽函数,并在槽函数中创建新的主页面:

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);
    // ...

private slots:
    void createNewMainWindow();
};

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    // ...
    MyWidget *widget = new MyWidget(this);
    connect(widget, &MyWidget::buttonClicked, this, &MainWindow::createNewMainWindow);
    setCentralWidget(widget);
}

void MainWindow::createNewMainWindow()
{
    MainWindow *newMainWindow = new MainWindow();
    newMainWindow->show();
}

这样,在点击按钮时,就会发出buttonClicked信号,然后在槽函数createNewMainWindow中创建一个新的主页面,并显示出来。

希望这可以帮助到你!

Qt主页面使用自定义Qwidget窗口部件导致点击按钮自动创建新的主页面如何解决

原文地址: https://www.cveoy.top/t/topic/iwUl 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录