Qt Designerで2つのウィンドウを作成しましたが、最初のウィンドウでボタン "..."を使用して2番目のウィンドウを適切に開きたいとします。私はこれをやろうとしたが、助けてくれてありがとう。QWidgetを開くためのQPushButton
firstwindow.cpp
#include "firstwindow.h"
#include "ui_firstwindow.h"
#include "secondwindow.h"
#include "ui_secondwindow.h"
FirstWindow::FirstWindow(QWidget *parent) :
QWidget(parent),
ui(new Ui::FirstWindow)
{
ui->setupUi(this);
ui->buttonapply->setText("Valider");
ui->buttoncancel->setText("Annuler");
ui->buttonetc->setText("...");
ui->buttonnext->setIcon(QIcon(":/Images/Images/Haut.png"));
ui->buttonprevious->setIcon(QIcon(":/Images/Images/Bas.png"));
connect(ui->buttonetc, SIGNAL(clicked()), this, SLOT(ShowSecondWindow()));
}
FirstWindow::~FirstWindow()
{
delete ui;
}
void FirstWindow::ShowSecondWindow()
{
SecondWindow window;
window.show();
}
firstwindow.h
#ifndef FIRSTWINDOW_H
#define FIRSTWINDOW_H
#include <QApplication>
#include <QWidget>
#include <QIcon>
#include "secondwindow.h"
#include "ui_secondwindow.h"
namespace Ui {
class FirstWindow;
}
class FirstWindow : public QWidget
{
Q_OBJECT
public:
explicit FirstWindow(QWidget *parent = 0);
~FirstWindow();
public slots:
void ShowSecondWindow();
private:
Ui::FirstWindow *ui;
SecondWindow *window;
};
#endif // FIRSTWINDOW_H
secondwindow.cpp
#include "firstwindow.h"
#include "ui_firstwindow.h"
#include "secondwindow.h"
#include "ui_secondwindow.h"
SecondWindow::SecondWindow(QWidget *parent) :
QWidget(parent),
ui(new Ui::SecondWindow)
{
ui->setupUi(this);
}
SecondWindow::~SecondWindow()
{
delete ui;
}
secondwindow.h
#ifndef SECONDWINDOW_H
#define SECONDWINDOW_H
#include <QWidget>
#include "firstwindow.h"
#include "ui_firstwindow.h"
namespace Ui {
class SecondWindow;
}
class SecondWindow : public QWidget
{
Q_OBJECT
public:
explicit SecondWindow(QWidget *parent = 0);
~SecondWindow();
private:
Ui::SecondWindow *ui;
};
#endif // SECONDWINDOW_H
main.cppに
#include "firstwindow.h"
#include "ui_firstwindow.h"
#include "secondwindow.h"
#include "ui_secondwindow.h"
int main(int argc, char **argv)
{
QApplication program(argc, argv);
FirstWindow window;
window.setWindowTitle("BASELFI - Programme - © 2016 H2A");
window.setWindowIcon(QIcon(":/Images/Images/Bouclier.png"));
window.setFixedSize(340, 270);
window.show();
return program.exec();
}
'関数が終了したとき、それはすぐに破壊されますのでwindow'は、あなたのハンドラ内のローカル変数です。 'SecondWindow'のインスタンスをnewで作成し、ポインタをどこかに格納するか、または第2のウィンドウがダイアログであり、短時間だけ存在する場合は' doModal() 'を使います。 –
@ KarstenKoop、コードを書くかもしれない。これは将来の例になります。 – Meugiwara