|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Apr 2011
Messaggi: 80
|
qt e c++
vi posto il codice di una applicazione che ho cercato di fare, ma naturalmente non funziona, al click del pulsante open, si dovrebbe aprire una altra finestra, il programma è costituito da due window, la mainwindow.ui e la dialog.ui
dialog.h Codice:
#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>
namespace Ui {
class Dialog;
}
class Dialog : public QDialog
{
Q_OBJECT
public:
explicit Dialog(QWidget *parent = 0);
~Dialog();
private:
Ui::Dialog *ui;
};
#endif // DIALOG_H
Codice:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void quit();
// void save();
void open();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
Codice:
#include "dialog.h"
#include "ui_dialog.h"
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
}
Dialog::~Dialog()
{
delete ui;
}
Codice:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "dialog.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::quit()
{
close();
}
void MainWindow::open()
{
Dialog g;
g.show();
}
Codice:
#include <QtGui/QApplication>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
dove sbaglio? |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Dal codice sembra che tu non stia creando un dialog modale, pertanto avendolo allocato sullo stack viene immediatamente distrutto.
Dialog non modale: Codice:
Dialog dialog = new Dialog(this); dialog.show(); Codice:
Dialog dialog(this); dialog.exec(); |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:06.



















