読者です 読者をやめる 読者になる 読者になる

TypeError: Result of expression 'method' [undefined] is not a function.

事象 C++ のメソッドが実行されず、次のエラーが表示される。 エラーメッセージ TypeError: Result of expression 'Scope.Method' [undefined] is not a function. 環境 Qt 4.8.6 Ubuntu 14.04 原因 A. クラスの定義に Q_OBJECT キーワードが含まれていない…

undefined reference to `<クラス名>::<シグナル名>'

問題 シグナルを定義してビルドすると下記のエラーが発生する。 undefined reference to `<クラス名>::<シグナル名>' 原因 クラス定義に Q_OBJECT キーワードを記述していないため。 対策 クラス定義に Q_OBJECT キーワードを記述する。 class MyClass { Q_O…

Q_INVOKABLE メソッド呼び出し時に TypeError が発生する

問題 Q_INVOKABLE メソッドの呼び出し時に次のエラーが発生する。 TypeError: Result of expression 'identifier.method' [undefined] is not a function. 原因 クラス定義に "Q_OBJECT" が無いため。 解決方法 クラス定義に "Q_OBJECT" を書く。 class MyEl…

FolderListModel を更新する

nameFilters プロパティーを更新する。 FolderListModel は、nameFilters プロパティーが更新されると再読み込みを行うぽい。これを利用する。 ListView { anchors.fill: parent model: FolderListModel { id: folderListModel folder: "file:///C:" } deleg…

Cannot anchor to an item that isn't a parent or sibling.

メッセージ Cannot anchor to an item that isn't a parent or sibling. 翻訳 親や兄弟ではない項目には固定できません。 原因 アンカー先が直接の親または兄弟でないため。 anchors.right: parent.parent.right 対処 アンカー先を直接の親または兄弟に変更…

conversion from 'QByteArray' to 'char*' is ambiguous

コード QByteArray byteArray; QDataStream dataStream; dataStream.readRawData(byteArray, byteArray.capacity()); エラー conversion from 'QByteArray' to 'char*' is ambiguous 解決策 readRawData の第1引数に QByteArray::data() を渡す。 dataStrea…

QDataStream & QDataStream::readBytes(char *& s, uint & l)

ストリームからバッファー s へ読み込み、ストリームへの参照を返します。 バッファー s は、new を使ってアロケートされます。破棄には、delete[] オペレーターを付けてください。 l パラメーターには、バッファーの長さをセットしてください。文字列が空の…

スロットが呼ばれない

原因 connect 関数のシグナル名とスロット名に括弧を付けてなかったため。 × connect(this, SIGNAL( mySignal ), this, SLOT( mySlot )); ○ connect(this, SIGNAL( mySignal() ), this, SLOT( mySlot() ));

QMessageBox のフォントサイズを変更する

方法1 QApplication::setFont() を使う。 QApplication a(argc, argv); QFont f = a.font(); f.setPointSize(f.pointSize() * 2); a.setFont(f);

デプロイ先のリモートディレクトリーを設定する

プロジェクトファイル (.pro) に次の行を記述する。 target.path = /home/user INSTALLS = target

QMetaObject::connectSlotsByName: No matching signal for ...

問題 Qt アプリケーション実行時に次のメッセージが表示される。 QMetaObject::connectSlotsByName: No matching signal for (スロット名) 原因 スロット関数の名前が命名規則に適合していないため。 on_event() 解決策 スロット関数の名前を修正する。 on…