知識は単独のものではなく、体系化されたものでなければなりません。私の個人的な概要と関連する経験の詳細については、このコラム「 Visual Studio」を参照してください。
このプロジェクトに取り組んでいるときに次のバグに遭遇しました: [Visual Studio] C++ 言語と Qt を使用してシリアル通信インターフェイスを開発しました。
記事ディレクトリ
Visual Studio 環境で Qt を使用したところ、右側のボタンにはスロットを自動的に追加する機能がないことがわかり、自分で方法を見つける必要があります。ネット上では複数の方法が紹介されているようなので、私が使用した方法をいくつかまとめてみたいと思います。
たとえば、ボタンにクリック機能を追加するために使用します。
GUI.h
次の関数の宣言を追加できます。
private slots:
void on_pushButtonStop_clicked();
GUI.cpp
関数の特定の実行関数を次のように追加します。
void GUI::on_pushButtonStop_clicked()
{
m_SerialPort.close();
ui.textBrowserStatus->insertPlainText("Successfully close the serial port!\r\n");
ui.textBrowserStatus->moveCursor(QTextCursor::End);
}
次に、GUI.ui
インターフェイス。
まず、以下の図に示すように、「信号/スロットの編集」インターフェースに切り替えます。
次に、左クリックしてボタンの位置からドラッグし、放します。次のインターフェイスがポップアップ表示されます。
自分で書いた関数名を追加する必要があります。
最後に「OK」を選択します。
完成した効果を次の図に示します。
ここまででスロットの接続は完了です。
ただし、GUI.h
ファイルGUI.cpp
、GUI.ui
インターフェース可能です。これは、作成した関数名が非常に標準化されており、システムがデフォルトでそれを関連付けるためです。つまり、次のステートメントが実行されます。
connect(pushButtonStop, SIGNAL(clicked()), this, SLOT (on_pushButtonStop_clicked());
より詳細な説明については、次の 2 つの記事を参照してください: VS qt はシグナル スロットを追加、vs2019 は Qt5 を開発、QAction クラスのシグナル転送をスロットに実装するスキル。
興味深い驚きを見つけました。
すでに彼のGUI.h
ファイルGUI.cpp
が、GUI.ui
インターフェイス。まず、起動機能を正常に実行できます。
次に、GUI.ui
インターフェイス、それを停止ボタンの機能にリンクしました。すると、2つのボタンの機能が実行されていることが分かりました。
ただし、実行順序は、最初に Stop 関数 (下図の close プロンプト)、次に Start 関数 (下図の start プロンプト) です。これはスロットの接続メカニズムも説明する必要があり、優先度は高くなります。