我用一個按鈕打開堆疊中的一個界面(界面1) 之后在這個界面里面設定按鈕打開了另外一個界面(界面2) 想問在新界面(界面2)如何設定按鈕回傳之前的界面(界面1)
void Laa::on_pushButton_clicked()
{
}
這邊應該添加什么陳述句。
uj5u.com熱心網友回復:
是用QStackedWidget? 是的話用它的setcurrentxxx方法就可以了uj5u.com熱心網友回復:
直接給你寫一個吧。。main.cpp:
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
widget.h:
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include "mydialog.h"
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
public slots:
void myslot();
void recvSignal();
private:
Ui::Widget *ui;
MyDialog *dlg;
};
#endif // WIDGET_H
widget.cpp:
#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
dlg = new MyDialog();
connect(ui->pushButton, SIGNAL(clicked(bool)), this, SLOT(myslot()));
connect(dlg, SIGNAL(signalToParent()), this, SLOT(recvSignal()));
}
Widget::~Widget()
{
delete ui;
}
void Widget::myslot()
{
dlg->show();
this->hide();
}
void Widget::recvSignal()
{
this->show();
}
mydialog.h:
#ifndef MYDIALOG_H
#define MYDIALOG_H
#include <QDialog>
namespace Ui {
class MyDialog;
}
class MyDialog : public QDialog
{
Q_OBJECT
public:
explicit MyDialog(QWidget *parent = 0);
~MyDialog();
public slots:
void dlgSlot();
private:
Ui::MyDialog *ui;
QWidget *pParent;
signals:
void signalToParent();
};
#endif // MYDIALOG_H
mydialog.cpp:
#include "mydialog.h"
#include "ui_mydialog.h"
MyDialog::MyDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::MyDialog)
{
ui->setupUi(this);
pParent = parent;
connect(ui->pushButton, SIGNAL(clicked(bool)), this, SLOT(dlgSlot()));
}
MyDialog::~MyDialog()
{
delete ui;
}
void MyDialog::dlgSlot()
{
emit signalToParent();
this->hide();
}
widget.ui跟mydialog.ui檔案都有一個QPushbutton
信號和槽的機制是Qt的精髓,樓主需要理解connect中各個引數的意思。
uj5u.com熱心網友回復:
qt信號和槽要理解,不然寫了代碼你也看不明白uj5u.com熱心網友回復:
請問解決遼嘛,我現在根本沒法視窗切換,點一下按鈕就強制退出了QAQuj5u.com熱心網友回復:
自己實作一個吧,其實也不難轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/145742.html
標籤:Qt
