C++ (Qt)class MainWindow : public QMainWindow { Q_OBJECTpublic: MainWindow(QWidget *parent = 0); ~MainWindow(); protected: void changeEvent(QEvent *e); private: Ui::MainWindow *ui; QFrame* Window; private slots: void AboutProgramm(); void newWindow();};
C++ (Qt)MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow), Window(0){ ui->setupUi(this); connect(ui->actionExit, SIGNAL(activated()), qApp, SLOT(quit())); connect(ui->actionAbout_Qt, SIGNAL(activated()), qApp, SLOT(aboutQt())); connect(ui->actionAbout, SIGNAL(activated()), this, SLOT(AboutProgramm())); connect(ui->actionOpen, SIGNAL(activated()), this, SLOT(newWindow()));} MainWindow::~MainWindow(){ delete ui;} void MainWindow::changeEvent(QEvent *e){ QMainWindow::changeEvent(e); switch (e->type()) { case QEvent::LanguageChange: ui->retranslateUi(this); break; default: break; }} void MainWindow::AboutProgramm(){ AboutDialog about(this); about.exec(); // AboutDialog *about = new AboutDialog(this); // about->exec(); // delete about;} void MainWindow::newWindow(){ if (!Window) { Window = new QFrame(this); ui->statusBar->showMessage("new window"); } else ui->statusBar->showMessage("old window"); Window->show(); Window->activateWindow();}
C++ (Qt)Window = new CDFrame(this);Window->setAttribute(Qt::WA_DeleteOnClose);
C++ (Qt)Window = new QFrame(this);Window->setAttribute(Qt::WA_DeleteOnClose);
C++ (Qt)//headerprivate:QWeakPointer<QFrame> frame;...Q_ASSERT(frame); // проверяем инициализирован ли объект (QWeakPointer) вообще каким либо указателемQFrame* pFrame = frame.data(); if (pFrame) { // проверяем не удален ли указатель ... // объект живой, делаем с ним чего-нибудь. }