[Kde-bindings] Qyoto, C# - how to get to menu actions from another class?

linuxoidoz at yahoo.com.au linuxoidoz at yahoo.com.au
Thu Feb 25 09:45:14 UTC 2010


Hello,

If I have menu and toolbar actions set up in my MainWindow class, can you please tell me how I can get to and control them from another class?

I have my main window class:

public class MainWindow : QMainWindow {
...
public QAction actionAbout;
...
private WindowUI winui;

	public MainWindow() {
		InitUI();
	}
		
	public void InitUI() {
		actionAbout = new QAction(iconAbout, "&About", this);
		winui = new WindowUI();
		winui.InitUI(this);
		...
		Connect(actionAbout, SIGNAL("triggered()"), this, SLOT("OnActionAboutTriggered()"));
	}

	[Q_SLOT]
	private void OnActionAboutTriggered() {
		QMessageBox.About(this, "About", "Message");
	}
}

and then I have another class which simply creates another widget on the main window:

public class WindowUI : QWidget {

	public void InitUI(QMainWindow win) {
	...
	}
}

The 'win' will only give me access to the MainWindow widgets, but it can't see the actions. I tried to make WindowUI to inherit from the MainWindow and to use 'base.actionAbout', then the actions are available but I can't control them, that is I can write the code, it compiles without errors but it doesn't do anything, for example 'base.actionAbout.SetDisabled(true);' doesn't do anything. Nor does the actionAbout signal/slot do anything when I click on it (which should open an About message box).

Thank you.



More information about the Kde-bindings mailing list