当你点击添加源时,会弹出obs支持的所有源的菜单,代码见window-basic-main.cpp,每个Menu iterm对应一个source
QMenu *OBSBasic::CreateAddSourcePopupMenu()
{
const char *type;
bool foundValues = false;
size_t idx = 0;
QMenu *popup = new QMenu(QTStr("Add"), this);
auto getActionAfter = [] (QMenu *menu, const QString &name)
{
QList<QAction*> actions = menu->actions();
for (QAction *menuAction : actions) {
if (menuAction->text().compare(name) >= 0)
return menuAction;
}
return (QAction*)nullptr;
};
auto addSource = [this, getActionAfter] (QMenu *popup,
const char *type, const char *name)
{
QString qname = QT_UTF8(name);
QAction *popupItem = new QAction(qname, this);
本文介绍了OBS Studio中添加源的功能实现。通过分析window-basic-main.cpp文件,可以看到每个菜单项对应一个源类型。在添加源时,使用PopMenu和QAction创建交互,并通过AddSourceFromAction进行操作。用户可以自定义源名称,确认后调用AddNew创建源并设置其特定属性。例如,当选择窗口捕获源时,会调用特定的属性设置函数AddProperty来完成详细配置。
订阅专栏 解锁全文
1915

被折叠的 条评论
为什么被折叠?



