从另一个类C++访问UI元素
问题描述:
我有一个从另一个类(实例)访问ui元素的问题。我的应用程序中有第二个QMainWindow,我可以在secondWindow.cxx类中访问所有ui元素,但不能在read.cxx类中访问。我的代码如下所示。我的错误在哪里?感谢您的帮助。从另一个类C++访问UI元素
答
您铸造QApplication::instance()
,这是一个从QApplication *
衍生QCoreApplication *
从QObject *
获得。这不会起作用,它不是secondWindow *
,甚至不是QMainWindow *
,甚至不是QWidget *
。
除此之外,你的编码风格很奇怪 - 在Qt中,习惯上使用CamelCase
作为类,而不是thisStuff
,这通常适用于函数和方法。其中<read.moc>
只是错误的。为什么read::m_read
是静态的?最后,两个窗口类之间的耦合以一种奇怪的方式设置(访问像QApplication
这样的全局内容,以获得对另一个窗口的引用闻到难看的代码)。一个更好的,更直接的方法是自动换行所有窗口的父对象或明确设置了依赖,或许是这样的:
MainWindow *mainWindow = new MainWindow();
SecondWindow *second = new SecondWindow(mainWindow);
UtilityWindow *utilityWin = new UtilityWindow(second);
['__secondWindow_h'是不是一个很好的标识符名称(HTTP ://stackoverflow.com/questions/228783/what-are-the-rules-about-using-an-underscore-in-ac-identifier) – chris 2013-04-11 18:07:02
哪里有你初始化m_readUI? – shivakumar 2013-04-11 18:07:56
'readCTImages'从哪里来? – 2013-04-11 18:24:54