問題タブ [slot]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
qt4 - エラー'そのようなスロットはありません'qt
シグナル/スロットオプションを使用して2つのウィジェットを接続しようとしていますが、「そのようなスロットが存在しない」というエラーが発生し続けます。実際のところ、プログラムを書いている間、タイプミスをしないようにCtrl+Spaceを使用しました。
だから私は1つのウィジェットを持っています:
renderArea.h
renderArea.cpp
2番目のウィジェット:
tableViewList.h
tableViewList.cpp
およびメインウィジェット:
上記の2つを接続するrenderingwidget.cpp:
ui-> graphicsViewはrenderAreaにプロモートされ、ui->clothoidTableはTableViewListにプロモートされました。
では、なぜこのエラーが表示されるのでしょうか。
class - Roxygen2を使用してS4クラススロットを適切に文書化する方法は?
roxygen(2) を使用してクラスを文書化する場合、タイトルと説明/詳細を指定することは、関数、メソッド、データなどと同じように見えます。ただし、スロットと継承はそれ自体が一種の動物です。roxygen2 で S4 クラスを文書化するためのベストプラクティス (現在または計画中) は何ですか?
適当な注意:
@slot
roxygen の初期の説明でタグ
の言及を見つけました。2008 年の R-forge メーリング リストへの投稿
は、これが死んでいることを示しているようで@slot
、roxygen ではサポートされていません。
これはroxygen2に当てはまりますか?前述の投稿では、代わりにユーザーが LaTeX マークアップを使用して独自の項目別リストを作成することを提案しています。たとえば、クラスを拡張する新しい S4 クラスは、次の"character"
ようにコーディングおよびドキュメント化されます。
ただし、これは機能しますが、スロットを文書化するためのこのアプローチは\describe
、\item
で区切られた@
タグがなく、スロットが文書化されず、roxygenize()
. また、定義されているクラスの継承を文書化する一貫した方法についても何も述べていません。@import
タグを使用すると、依存関係は一般的に正常に機能すると思います(特定のスロットが別のパッケージの非基本クラスを必要とする場合) 。
要約すると、roxygen(2) スロットの現在のベストプラクティスは何ですか?
現時点では、次の 3 つのオプションを検討する必要があるようです。
- A -- 項目別リスト (上記の例のように)。
- B --
@slot
... しかし、余分なタグや実装を見逃していました。上記の例の項目別リストの代わりとして @slot が含まれていたバージョンでは、@slot を roxygen / roxygen2 で動作させることができませんでした。繰り返しますが、上記の例は roxygen(2) で機能します。@param
C --同じことを達成する、スロットを指定するための代替タグ ( など)。
githubroxygen2
の開発ページに作成した投稿からこの質問を借用/拡張しています。
c++ - QObjectから派生せずにSIGNALとSLOTを使用するにはどうすればよいですか?
または、質問を定式化する他の方法(問題は解決しませんでしたが):'QObject :: QObject'は、クラス'QObject'で宣言されたプライベートメンバーにアクセスできません
クラスにSIGNALsとSLOTSの機能が必要ですが、QObject
?から派生しないと不可能だと思います。
問題は、信号とスロットを使用するために派生する必要があることのようQObject
です...しかし、デフォルトのコンストラクターが必要ですMyClass
。しかし、次の機能のためにそれらを構築できませんQObject
:
コピーコンストラクターまたは代入演算子がありません。
たくさんやってみました...
だから私のshoulクラスはそのように見えます:
のデフォルトのコンストラクタが必要ですMyClass
。
それで、「'QObject :: QObject'はクラス'QObject'で宣言されたプライベートメンバーにアクセスできません」エラーを回避する可能性はありますか?
または、代わりに、信号とスロットを使用せずに使用する可能性はありますQObject
か?
アドバイスをいただければ幸いです。
installation - RPM+Yum: 同じ名前で異なるバージョンの 2 つのパッケージを同時にインストールする
モデレーター向け: この質問は、RPM ベースのインストーラーの開発に関するものです。
ソフトウェアのパッケージングシステムを開発しています。新しいメジャー バージョンに移行する場合は、RPM パッケージを変更してすべてのファイルを別のディレクトリ (別のサフィックス付き) にインストールし、パッケージ バージョンを変更するように、更新管理を設計しました。パッケージには同じ名前を付けます (例: a-package-1.0.0 --> a-package-2.0.0)。ユーザーが新しいパッケージに移行している間、古いバージョンで作業を継続できるように、古いパッケージを保持したまま新しいパッケージをインストールしたいと考えています。
そのため、パッケージと RPM ユーティリティの間にファイルの競合はなく、問題なく同時にインストールできます (rpm -ivh ...)。しかし、Yum は、新しいバージョンは古いバージョンの更新であると考えています。
このような RPM パッケージを生成して、「yum install a-package-1.0.0 a-package-2.0.0」で両方をインストールする方法はありますか? おそらく、パッケージ内のいくつかのフラグを設定する必要がありますか? 何も見つかりませんでした。
c++ - Qt4は、クラスを使用してSLOTを作成し、QSLIDERでCONNECTを使用してQWebViewのsetTextSizeMultiplierを制御します
Qt4を使用して、QSLIDERでCONNECTを使用してQWebViewのsetTextSizeMultiplierを制御するSLOTを作成するクラスを作成するにはどうすればよいですか。
私のコード:(thesliderbarはQSliderで、vwebはQWebViewです)
connect();のエラーが発生します。
エラー:
ywr.cpp:31:エラー:「、」トークンの前にプライマリ式が必要です
ywr.cpp:-1:コンストラクター内'ywr :: ywr(QWidget *)':
python - 信号が何かに接続されているかどうかを確認する方法
信号が既に関数に接続されているかどうかを確認する方法はありますか?
つまり、signals.siSelectionChange が何かに接続されているかどうかを確認したい
qt - Qtメインウィンドウメニュー信号
QMainWindowを処理する「コア」オブジェクトがあります。
Core.hコード
Core.cppコード
メインウィンドウのメニューバー信号を次のようにコアスロットに接続しようとしています。
しかし、それは機能しません。私はC++とQtに不慣れです。これを接続する方法は?あるいは、他のプログラム部分に対するメインウィンドウアクションを処理するためのより良い方法があるかもしれません。
UPD の問題は解決しました。QMenuBarを含めるのを忘れる
signals - Qt でシグナルスロット接続をモデル化する
UML を使用して、シグナル スロットの接続 (たとえば、特殊な状況での接続) を文書化するのが好きです。Enterprise Architect を使用していますが、クラスごとに 5 つ以上のシグナルやスロットがあると、非常に混乱します。フロー図とコンポーネント図を試しました:
フロー ダイアグラム: クラスをプロセスとしてモデル化し、ポートをシグナル/スロットに使用しました。
コンポーネント図:クラスにはコンポーネントを使用し、シグナル スロットにはインターフェイスを使用しました。
シグナル/スロットのモデリングの経験はありますか?また、何を提案しますか? シグナル/スロットにより適したソリューションはありますか?
チャーリー
qt - 基本クラスのパブリック関数を Qt の派生クラスのパブリック スロットに変更できますか?
私は今Qtを使用しています。
私は C++ クラスAを作成しましたが、その中にいくつかのパブリック関数があります。そして今、私はQObjectとA の両方から複数の継承を持つQt クラスBを書いています。
そして、 A の1 つのパブリック関数をBのパブリック スロットに変更したいと考えています。
それは可能ですか?
c++ - QActionのリストをQMenuに追加し、それらを1つのスロットで処理するにはどうすればよいですか?
まず、QWidget
実行時までの長さがわからないリストがあります。次に、それらを表示する場所を作成し、QListWidget
誰かがそれらをクリックすると、シグナルを使用してcurrentItemChanged(QListWidgetItem*, QListWidgetItem*)
それをキャッチし、クリックされたアイテムのインデックスを取得します。
今、私はで同様のことをしたいと思いますQMenu
。とそのアクションが構築されるときにリストはわかりますがQMenu
、これをハードコーディングすることはできません。
アクションを作成し、それらのシグナルをキャッチして、メニューリスト内のアクションの位置(インデックス)に応じて異なることを行う同じスロットに接続するにはどうすればよいですか?他のアプリケーションがこれを使用するため、これを解決する方法が必要です。マッピングを調べてみましたが、その使い方がわかりませんでした。
sender
スロットをつかもうとしましたが、そこから有用な情報を得ることができませんでした。