Qt を使用してウィンドウを作成しています。次のコードがあります (これは疑似コードです)。
class MyInterface {
virtual void doupdate() = 0;
}
class InterfaceHandler {
InterfaceHandler(MyInterface *i) {
the_int = i;
start_thread(&mainloop);
}
void mainloop() {
while(1) the_int->doupdate();
}
MyInterface *the_int;
}
class console : public QMainWindow, public MyInterface {
console() {
InterfaceHandler x(this);
}
void doupdate() {
//code to modify the gui
}
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
console w(argc, argv);
w.show();
return a.exec();
}
私の問題は、 でthe_int->doupdate()
が呼び出されたときmainloop()
、 への参照the_int
が間違っていることです。console
これは が を継承していることに関係していると思いますがQMainWindow
、解決策がわかりません。
MyInterface
常に a に継承されるとは限りませんQObject
。doupdate()
fromをコンストラクターでconsole
参照を渡す別のクラスに分割しようとしましconsole
たが、同じ結果が得られます。
何か案は?