【发布时间】:2021-12-14 18:18:37
【问题描述】:
我是 qt 新手,我想知道如何制作动态菜单。 我确实得到它来制作新的子菜单,但我不知道如何实现这些动态制作的子菜单的“triggered() 函数”,这样我就可以访问如果我想点击这样一个新的子菜单会发生什么。
这是我到目前为止所拥有的(带有:vector<QString> = vec; 和一些名为“New_Window”的 .ui 窗口)
在主窗口.cpp
在某些功能中:
QMenu *menu = this->menuBar()->addMenu("Chat Members");
for (int i = 0; i < vec.size(); ++i){
QString name = vec.at(i);
QAction *act = menu->addAction(name);
New_Window* new_window = new New_Window;
QObject::connect(act,SIGNAL(triggered()),
new_window,SLOT(actionReaction()));
}
【问题讨论】:
-
您能否明确说明您所说的“动态菜单”是什么意思?通过连接到
QMenu::aboutToShow信号,您可以在菜单显示之前收到通知。 -
动态菜单是指在应用程序执行期间创建的菜单。
-
动态菜单是指在开始时不存在但在应用程序执行期间创建的子菜单。我可以看到正在创建的菜单栏,这不是问题,但我不知道如何向按钮添加功能,例如如何使用这个新创建的菜单按钮打开一个新窗口。
标签: qt dynamic signals menubar slots