我有一个MainWindow类,其中有一个QStackWidget。 在其中我有另外3个小部件,每个小部件都是我自己的自定义类,派生自QWidget。
在其中一个小部件中,我有一个按钮。
当我使用QT Creator并按下按钮上的Go to slot..
时,它会在MainWindow类中创建一个on_button_clicked
事件。
如何更改它以在自定义类中包含事件?
更新: 我可以看到按钮位于MainWindow中。这是自动生成的,所以我不确定如何移动它。
代码: mainwindow.cpp:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_2_clicked()
{
QMessageBox::information(this, "Button 2 clicked!", "Click");
}
mainwindow.ui
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>668</width>
<height>630</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralWidget">
<widget class="QStackedWidget" name="stackedWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>531</width>
<height>391</height>
</rect>
</property>
<property name="currentIndex">
<number>1</number>
</property>
<widget class="Stack1" name="page">
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>140</x>
<y>110</y>
<width>321</width>
<height>121</height>
</rect>
</property>
<property name="text">
<string>Button on Stack1</string>
</property>
</widget>
</widget>
<widget class="Stack2" name="page_2">
<widget class="QPushButton" name="pushButton_2">
<property name="geometry">
<rect>
<x>110</x>
<y>140</y>
<width>371</width>
<height>161</height>
</rect>
</property>
<property name="text">
<string>Button on stack2</string>
</property>
</widget>
</widget>
</widget>
</widget>
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>668</width>
<height>25</height>
</rect>
</property>
</widget>
<widget class="QToolBar" name="mainToolBar">
<attribute name="toolBarArea">
<enum>TopToolBarArea</enum>
</attribute>
<attribute name="toolBarBreak">
<bool>false</bool>
</attribute>
</widget>
<widget class="QStatusBar" name="statusBar"/>
</widget>
<layoutdefault spacing="6" margin="11"/>
<customwidgets>
<customwidget>
<class>Stack1</class>
<extends>QWidget</extends>
<header>stack1.h</header>
<container>1</container>
</customwidget>
<customwidget>
<class>Stack2</class>
<extends>QWidget</extends>
<header>stack2.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>
我希望按钮回调位于我的自定义类stack2.cpp
中#include "stack2.h"
Stack2::Stack2(QWidget *parent) : QWidget(parent)
{
}
Stack2::~Stack2()
{
}