簡體   English   中英

從窗口QT打開新窗口?

[英]opening new window from a window 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個聲譽才能做到這一點,所以我無法做到這一點。

我不明白。 如果我理解了這個問題,你只需要將QAction從QMenuBar連接到與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()));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM