Qt主页面使用自定义Qwidget窗口部件导致点击按钮自动创建新的主页面如何解决
要解决这个问题,你可以使用信号和槽机制来实现。
首先,在自定义的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中创建一个新的主页面,并显示出来。
希望这可以帮助到你!
原文地址: https://www.cveoy.top/t/topic/iwUl 著作权归作者所有。请勿转载和采集!