⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 complexping.cpp

📁 QT 开发环境里面一个很重要的文件
💻 CPP
字号:
/******************************************************************************** Copyright (C) 1992-2006 Trolltech ASA. All rights reserved.**** This file is part of the example classes of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file.  Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.com.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#include <stdio.h>#include <QtCore/QCoreApplication>#include <QtCore/QFile>#include <QtCore/QDebug>#include <QtCore/QProcess>#include <QtDBus/QtDBus>#include "ping-common.h"#include "complexping.h"void Ping::start(const QString &name, const QString &oldValue, const QString &newValue){    Q_UNUSED(oldValue);    if (name != SERVICE_NAME || newValue.isEmpty())        return;    // open stdin for reading    qstdin.open(stdin, QIODevice::ReadOnly);    // find our remote    iface = new QDBusInterface(SERVICE_NAME, "/", "com.trolltech.QtDBus.ComplexPong.Pong",                               QDBusConnection::sessionBus(), this);    if (!iface->isValid()) {        fprintf(stderr, "%s\n",                qPrintable(QDBusConnection::sessionBus().lastError().message()));        QCoreApplication::instance()->quit();    }    connect(iface, SIGNAL(aboutToQuit()), QCoreApplication::instance(), SLOT(quit()));    while (true) {        printf("Ask your question: ");        QString line = QString::fromLocal8Bit(qstdin.readLine()).trimmed();        if (line.isEmpty()) {            iface->call("quit");            return;        } else if (line == "value") {            QVariant reply = iface->property("value");            if (!reply.isNull())                printf("value = %s\n", qPrintable(reply.toString()));        } else if (line.startsWith("value=")) {            iface->setProperty("value", line.mid(6));                    } else {            QDBusReply<QDBusVariant> reply = iface->call("query", line);            if (reply.isValid())                printf("Reply was: %s\n", qPrintable(reply.value().variant().toString()));        }        if (iface->lastError().isValid())            fprintf(stderr, "Call failed: %s\n", qPrintable(iface->lastError().message()));    }}    int main(int argc, char **argv){    QCoreApplication app(argc, argv);    if (!QDBusConnection::sessionBus().isConnected()) {        fprintf(stderr, "Cannot connect to the D-BUS session bus.\n"                "To start it, run:\n"                "\teval `dbus-launch --auto-syntax`\n");        return 1;    }    Ping ping;    ping.connect(QDBusConnection::sessionBus().interface(),                 SIGNAL(serviceOwnerChanged(QString,QString,QString)),                 SLOT(start(QString,QString,QString)));    QProcess pong;    pong.start("./complexpong");    app.exec();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -