2012-02-24 13 views
0

私のプロジェクトでは、QWizardとQWizardPagesを使用していますが、最後にこれらのクラスには制限があり、ソースコードを変更したいと考えていました。しかし、qtソースを直接変更するのは良い考えではありませんが、私のプロジェクトフォルダにコピーして、クラス名を変更してください。彼らの誰かが前に同じことをしていますか?私はファイルを正常にコンパイルできません。qMywizard.cppは、最後にqMywizard.hの生成されたmocファイルを含み、mocファイルはQMyWizardPrivateの定義なしではコンパイルできません。私はまた、ファイルが場所を変えたときに多くのマクロが認識されないことを恐れています。誰か助けてくれますか?qtソースファイルを自分のプロジェクトにコピーしてコンパイルをパスする方法は?

+1

クラスを継承できず、変更する必要のあるメンバー関数をオーバーロード/オーバーライドできませんか? –

+0

@Joachim:Qtクラスは、すべての決定が行われる内部のプライベートデータクラスで構成されているため、通常は不可能です。 Qtクラスは単にファサードにすぎませんが、オーバーライドすることはできますが、これで何も勝つことはできません。まだ実際のアルゴリズムへのアクセスはありません。 – Jens

+0

@ joachim-pileborg:実際にQWizardを継承したクラスを書いていますが、それほど問題があります。たとえば、ウィザードボタンのプロパティを制御したいのですが、Qwizardは新しいページを入力するたびに状態を更新します。 – Royt

答えて

0

Qtソースはgitです。クローンし、ブランチを作成し、そこに変更を書き込んで、ビルドシステムでコンパイルします。また、変更に関するライセンス義務を理解し、それに従ってください(特にLGPLを使用している場合)。

+0

QTフォルダ内で何も変更できない場合は、独自のビルドシステムでコンパイルするには? LGPLが自分のプロジェクトフォルダにファイルをコピーできないということですか? – Royt

+0

ただライセンスをお読みください。私が言ったように、彼らのgit repo(http://qt.gitorious.org/)をクローンし、そのフォルダで働きます。私が言っていることのすべてを理解していなければ、座って目標を達成したいかどうかを学ぶことを提案します。 –

+0

これは確かに有効な方法ですが、その意味を理解しておいてください。 Qtの新しいバージョンに後で更新することを決定した場合は、変更が確実に一緒にマージされ、すべてが期待通りに機能することを確認する責任があなたにあります。それが私だったら、まずヨアヒムの提案に真剣に考えていきたいと思います。 – kenrogers

関連する問題