从窗口 QT 打开新窗口

  • 本文关键字:窗口 新窗口 QT c++ qt
  • 更新时间 :
  • 英文 :


我有两个类都在QDialog类下定义。

两个类都单独正常工作并打开各自的窗口,但我想要的是从一个窗口中菜单栏中有一个操作,单击打开另一个窗口。定义的类的代码是第 1 类

class Box : public QDialog
{
        Q_OBJECT
        public:
                Box(QWidget *parent=0);
        private slots:
                void refresh();
        signals:
                void itemChanged(QStandardItem *);
        private:
                void create_frame();
                void create_menu();
                QGroupBox *tablegroup;
                QDialogButtonBox *buttonbox;
                QAction *help;
                QAction *exit;
                QAction *idseacrh;
                QAction *idsearch;
                QMenu *file;
                QMenu *search;
                QMenuBar *menubar;
                QTableView *table;
};

第 2 类

class Box1 : public QDialog
{
        Q_OBJECT
        public:
                Box1(QWidget *parent=0);
        private:
                QLineEdit *text;
                QLabel *searchh;
                QDialogButtonBox *buttonboxx;
                QTableView *tablee;
                QGroupBox *tableegroup;
                QGroupBox *searchgroup;
};

该操作将出现在 Box 中,它将打开 Box1。_我也有我创建并尝试上传的_窗口的图像,但它说我需要10个声誉才能做到这一点,所以我无法做到这一点。

我不明白。如果我理解了这个问题,您只需要将QMenuBar中的QAction连接到功能,这将对应于使用Box1小部件创建新窗口。这是您如何做到这一点的简单示例:

void Box::newDialog()
{
    QVBoxLayout* lay = new QVBoxLayout;
    Box1* temp = new Box1(this);
    lay->addWidget(temp);
    QDialog dialog(this);
    dialog.setModal(true);
    dialog.setLayout(lay);
    dialog.setWindowTitle("Box1");
    dialog.exec();
}

connect(Box1Action, SIGNAL(triggered()), this, SLOT(newDialog()));

或更简单:

myMenu->addAction(tr("Create Box1 Window"), this, SLOT(newDialog()));

最新更新