gpt4 book ai didi

c++ - 从 QT 窗口打开新窗口?

转载 作者:行者123 更新时间:2023-11-28 03:34:39 25 4
gpt4 key购买 nike

我有两个类都定义在 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()));

关于c++ - 从 QT 窗口打开新窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11361565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com