0

嗨,我正在学习 QT,但遇到了一些我不明白的事情。为什么当我创建这样的小部件时

widget = new Widget(this);

widget->show();不显示小部件,但如果我把“这个”留在外面,即

widget = new widget();

它显示?更重要的是,我需要能够从孩子那里调用父母的方法之一,除非我通过传递孩子的this创建来设置孩子的患者,否则我无法做到这一点。

4

1 回答 1

0

小部件确实出现了。但它显示为主窗口的一部分,而不是在它自己的窗口中。当然,如果您正在创建的小部件中没有任何内容,那么您将看不到太多内容。您可以使用以下方法进行测试:

widget = new QTextEdit(this);
widget->show();

如果你想让小部件总是显示在它自己的窗口中,那么你应该让你的小部件继承自 QDialog 而不是 QWidget。或者,如果您不想(或不能)这样做,那么您应该Qt::Window在创建小部件时设置窗口标志:

widget = new Widget(this, Qt::Window);
于 2012-12-07T14:41:33.223 回答