if you use QtCreator to create your form (top level QWidget) and use creator to add your menu options, the signals you are looking
for will be referenceable via the 'ui' pointer as shown below. supply your own file open handlers such as mine 'handleFileOpenClick'.
Creator will setup a file called (in my case) ui_mainwindow.h which can be found in your build directory. There you will see all your
designer generated widgets.
MainWindow
::MainWindow(QWidget *parent
) : ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect ( ui->actionOpen, SIGNAL(triggered()), this, SLOT(handleFileOpenClick()));
connect ( ui->actionSave, SIGNAL(triggered()), this, SLOT(handleFileSaveClick()));
connect ( ui->actionNew, SIGNAL(triggered()), this, SLOT(handleNewClick()));
}
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
settings = new QSettings(this);
ui->setupUi(this);
connect ( ui->actionOpen, SIGNAL(triggered()), this, SLOT(handleFileOpenClick()));
connect ( ui->actionSave, SIGNAL(triggered()), this, SLOT(handleFileSaveClick()));
connect ( ui->actionNew, SIGNAL(triggered()), this, SLOT(handleNewClick()));
}
To copy to clipboard, switch view to plain text mode
void MainWindow::handleFileOpenClick()
{
if ( settings->contains(_keyLastFilePath))
{
prevFilePath = settings->value(_keyLastFilePath).toString();
}
tr("Open SCXML Input File"), prevFilePath, tr("SCXML Files (*.scxml)"));
settings->setValue(_keyLastFilePath, fileName);
project = new SMProject(ui->graphicsView);
project->readInputFile(fileName);
}
void MainWindow::handleFileSaveClick()
{
if ( project == NULL) return;
if ( settings->contains(_keyLastFilePath))
{
prevFilePath = settings->value(_keyLastFilePath).toString();
}
tr("Open SCXML Input File"), prevFilePath, tr("SCXML Files (*.scxml)"));
settings->setValue(_keyLastFilePath, fileName);
project->save(fileName);
}
void MainWindow::handleFileOpenClick()
{
QString prevFilePath=QDir::homePath();
QString fileName ;
if ( settings->contains(_keyLastFilePath))
{
prevFilePath = settings->value(_keyLastFilePath).toString();
}
fileName = QFileDialog::getOpenFileName(this,
tr("Open SCXML Input File"), prevFilePath, tr("SCXML Files (*.scxml)"));
settings->setValue(_keyLastFilePath, fileName);
project = new SMProject(ui->graphicsView);
project->readInputFile(fileName);
}
void MainWindow::handleFileSaveClick()
{
if ( project == NULL) return;
QString prevFilePath=QDir::homePath();
QString fileName ;
if ( settings->contains(_keyLastFilePath))
{
prevFilePath = settings->value(_keyLastFilePath).toString();
}
fileName = QFileDialog::getSaveFileName(this,
tr("Open SCXML Input File"), prevFilePath, tr("SCXML Files (*.scxml)"));
settings->setValue(_keyLastFilePath, fileName);
project->save(fileName);
}
To copy to clipboard, switch view to plain text mode
Bookmarks