質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

1543閲覧

UbuntuのQtのconnectに関する質問です。

nqf27650

総合スコア115

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2017/04/28 02:55

下記のコードは、T_warikomi.pro、counter.h、counter.cpp、sample.cppの各ファイルから
できています。

QObject::connect(&a, SIGNAL(valueChanged(int)), &b, SLOT(setValue(int)));
によりまして、counterクラスbへの割込は実現出来ますが、同時にmainの”void setValue(int a)”
への割込を行う事は出来ますか?

//T_warikomi.pro===========================
TEMPLATE = app
TARGET =
DEPENDPATH += .
INCLUDEPATH += .

Input

HEADERS += counter.h
SOURCES += counter.cpp sample.cpp

//counter.h============================
#include "QObject"
#include "QTextStream"

class Counter : public QObject
{
Q_OBJECT

public:
Counter(const QString sname);

int value() const;

public slots:
void setValue(int value) ;

signals:
void valueChanged(int newValue);

private:
int m_value;
QString m_name;

};

//counter.cpp=========================
#include "counter.h"

Counter::Counter(const QString sname)
{
m_value = 0;
m_name = sname;
}

int Counter::value() const
{
return m_value;
}

void Counter::setValue(int value)
{
QTextStream out(stdout);
if (value != m_value) {
m_value = value;
out << "send:[" << m_name << "] " << value << endl;
emit valueChanged(value);
//out << "completed:[" << m_name << "] " << value << endl;
} else {
out << "Ignore:[" << m_name << "] " << value << endl;
}
}
//sample.cpp=====================
#include "QObject"
#include "counter.h"

void setValue(int a);
int main(int argc, char *argv[])
{
Counter a("a");
Counter b("b");

QObject::connect(&a, SIGNAL(valueChanged(int)), &b, SLOT(setValue(int)));
QObject::connect(&a, SIGNAL(valueChanged(int)), this, SLOT(setValue(int)));//<---ここです

a.setValue(12);
//a.setValue(13);
//b.setValue(48);
}

void setValue(int a){
qDebug("main_accessed");
}

以上宜しくお願いします。
注)質問の方法、書き方についてコメント頂きますと、訂正しますので宜しく。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

別の方法で解決すみ。

投稿2017/05/01 11:05

nqf27650

総合スコア115

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

※ 回答ではありません

"出来ますか?"というのは

  1. やってないからできるかどうかわかんない ですか?
  2. やってみたらうまいこといかんかった ですか?

... (1)は論外やけど

投稿2017/04/28 03:02

episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問