Portál AbcLinuxu, 7. května 2025 00:49
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.