[Kde-bindings] Qt, Qyoto buttons work intermediately
linuxoidoz at yahoo.com.au
linuxoidoz at yahoo.com.au
Thu Feb 18 09:44:20 UTC 2010
So if I understand it right, if I have one class MainWindow with a button btn1, and another class StartWindow with a button btn2, then you use this
Connect(button, SIGNAL("clicked()"), otherObject.btn2, SLOT("buttonClicked()"));
to emit a signal buttonClicked() from btn2 in StartWindow when button btn1 in MainWindow has been clicked?
>you tell the meta object system to invoke "otherObject.buttonClicked()" when the signal "clicked()" in the object "button" is emitted
In C# you declare a method first as
this.btn1.Clicked += new System.EventHandler(this.OnBtn1Clicked);
and then implement it as
protected virtual void OnBtn1Clicked (object sender, System.EventArgs e)
How do you do this with Qt in C#? Sorry, I just can't understand this signal/slot thing without comparable examples. All I need to know is, for example, how to show a message box from another class and pass a variable to it.
This
QObject.Connect(btnAbout, Qt.SIGNAL("clicked()"), this, Qt.SLOT("ShowAbout(variable)"));
[Q_SLOT]
private void ShowAbout() {
QMessageBox.About(this, "About", variable.ToString());
}
simply doesn't work. How can you pass a reference to a widget in the SLOT if you're saying you need to pass a type, NOT a variable, when the variable is invisible to the QMessageBox unless you pass it to the method.
If you could send me a link to signal/slot C# examples, I'm happy to read, but this Qt-C# signal/slot theory is too different to plain C# to comprehend.
More information about the Kde-bindings
mailing list