1

私はQTの初心者です。

VisualStudio2008でqt4.7.1を使用しています。

すべて画像で覆われているボタンを実装しようとしていますが、押すと画像が変化します。(画像ボタン)QTデザイナーを使用してボタンを正しいレイアウトに配置し、プログラムで押されたイベント(..signal ..)を処理してボタンのアイコンを変更しようとしています。

新しいmainWindowを作成します。その中にツールボタンを置きます。スロット&シグナルモードに切り替えます。押されたボタン()からウィンドウ上の新しいslot1()への信号スロットを作成しました。ここで、slot1()のコードはどこに配置しますか?

4

1 に答える 1

1

私の英語を祈ってください。ひどいですが、私はあなたを助けようとします。

継承アプローチを使用する必要があります。したがって、次のようになります。
•フォームを作成し、そのフォームにslot1()との接続を追加しました。
•フォームをプロジェクトに含め、コンパイルします。ui_FormName.hという名前のファイルが生成されます。そのファイルの下部に、次のようなコードがあります。
namespace Ui {
class MainWindow: public Ui_MainWindow {};
} // namespace Ui


1)新しいクラスを作成し、クラスQMainWindowから継承します。
2)ヘッダーインクルードで生成されたh-fileに、生成された.h-fileで宣言されているタイプUi :: MainWindowのメンバーを追加します(例:) Ui::MainWindow* m_puiTmp;
3)コードも追加します:
public slots: // or private slots:, or protected slots: ... Whatever.
void slot1();

次に、新しいクラスの関数の実装を作成します。コンストラクターを追加してから、スロットm_puiTmp->setupUi( this );の実装を作成することを忘れない でください。slot1()

派生クラスでスロットとシグナルを記述し、QtDesignerでそれらをシグナルとスロットに接続することもできます。デザイナでnowスロットまたはシグナルを追加するときは、コードで設定した名前に従って名前を変更します。

これがお役に立てば幸いです。問題を解決できない場合は、私にメッセージを書いてください。私は助けようとします。

于 2010-12-07T19:25:22.307 に答える