Portál AbcLinuxu, 5. listopadu 2025 09:23
connect(ui->actionExit, SIGNAL(triggered()), qApp, SLOT(exit()));
#include "mainwindow.h"
#include "help.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->actionNapoveda,SIGNAL(triggered()),Help::ui,SLOT(show()));
// tady je problém
}
MainWindow::~MainWindow()
{
delete ui;
}
Help.cpp
#include "help.h"
#include "mainwindow.h"
#include "ui_help.h"
Help::Help(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::Help)
{
ui->setupUi(this);
this->hide();
connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(hide()));
}
Help::~Help()
{
delete ui;
}
void Help::on_pushButton_clicked()
{
this->close();
}
main.cpp
#include QtGui/QApplication
#include "mainwindow.h"
#include "help.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
Vzhledem, že jsem si pročetl kde co nechápu jak propojit 2 okna.
Děkuji za pomoc
V kódu vidím několik problémů. Pokud je toto celý zdroják, nevidím v něm nic, co by vytvořilo objekt třídy Help. Ten je nutné vytvořit buď v konstruktoru MainWindow, nebo ještě lépe až při požadavku na zobrazení okna s nápovědou.
Program se nepřeloží, protože voláš show() neexistujícího objektu. Bude potřeba upravit zdroják MainWindow např. takto
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->actionNapoveda, SIGNAL(triggered()), helpWindow, SLOT(show()));
}
V hlavičce MainWindow bude potřeba vytvořit "Help helpWindow".
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.