本文整理汇总了C++中Registry::interfaces方法的典型用法代码示例。如果您正苦于以下问题:C++ Registry::interfaces方法的具体用法?C++ Registry::interfaces怎么用?C++ Registry::interfaces使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Registry
的用法示例。
在下文中一共展示了Registry::interfaces方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char **argv)
{
qputenv("QT_QPA_PLATFORM", QByteArrayLiteral("wayland"));
QApplication app(argc, argv);
QWidget window;
ConnectionThread *connection = ConnectionThread::fromApplication();
Registry registry;
registry.create(connection);
QObject::connect(®istry, &Registry::interfacesAnnounced, &app,
[®istry, &window] {
const bool hasDpms = registry.hasInterface(Registry::Interface::Dpms);
QLabel *hasDpmsLabel = new QLabel(&window);
if (hasDpms) {
hasDpmsLabel->setText(QStringLiteral("Compositor provides a DpmsManager"));
} else {
hasDpmsLabel->setText(QStringLiteral("Compositor does not provid a DpmsManager"));
}
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(hasDpmsLabel);
QFrame *hline = new QFrame;
hline->setFrameShape(QFrame::HLine);
layout->addWidget(hline);
DpmsManager *dpmsManager = nullptr;
if (hasDpms) {
const auto dpmsData = registry.interface(Registry::Interface::Dpms);
dpmsManager = registry.createDpmsManager(dpmsData.name, dpmsData.version);
}
// get all Outputs
const auto outputs = registry.interfaces(Registry::Interface::Output);
for (auto o : outputs) {
layout->addLayout(setupOutput(o, ®istry, dpmsManager));
QFrame *hline = new QFrame;
hline->setFrameShape(QFrame::HLine);
layout->addWidget(hline);
}
window.setLayout(layout);
window.show();
}, Qt::QueuedConnection
);
registry.setup();
return app.exec();
}