【发布时间】:2012-07-13 06:26:08
【问题描述】:
我的 Qt 应用程序有一个奇怪的问题。我有一个QMainWindow,方便的是MainWindow。
以下代码适用于 main() 函数:
int main(int argc, char *argv[])
{
..
MainWindow mainWindow;
mainWindow.show();
..
}
但是,以下根本不显示 MainWindow:
int main(int argc, char *argv[])
{
AnotherClass::staticFunction();
}
class AnotherClass: public QObject {
Q_OBJECT
public:
static void staticFunction();
}
void AnotherClass::staticFunction() {
MainWindow mainWindow;
mainWindow.show();
return ;
}
【问题讨论】:
-
我认为你需要运行 QCoreApplication::exec();
-
虽然
staticFunction本身是静态的,但其中的mainWindow变量不是,所以一旦你从函数返回,变量就会超出范围。 -
谢谢大家,我已经想通了! :)
标签: c++ qt qmainwindow