从另一个类C++访问UI元素

问题描述:

我有一个从另一个类(实例)访问ui元素的问题。我的应用程序中有第二个QMainWindow,我可以在secondWindow.cxx类中访问所有ui元素,但不能在read.cxx类中访问。我的代码如下所示。我的错误在哪里?感谢您的帮助。从另一个类C++访问UI元素

​​
+1

['__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

+0

哪里有你初始化m_readUI? – shivakumar 2013-04-11 18:07:56

+0

'readCTImages'从哪里来? – 2013-04-11 18:24:54

您铸造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);