在我的QMainWindow实例中,这很好用:
MainWindow::MainWindow()
{
QStringList labels;
labels << tr("Title") << tr("Location");
widget = new QWidget;
setCentralWidget(widget);
QPushButton *b = new QPushButton(widget);
}
但是当像XmlReader reader(widget);
那样传递小部件时,我想在XmlReader
而不是MainWindow
的构造函数中执行相同操作,如:
XmlReader::XmlReader(QWidget *widget)
: widget(widget)
{
QPushButton *b = new QPushButton(widget);
}
它没有表现出来。为什么呢?
编辑:它的工作原理如下所述,但它仍无法在XmlReader中使用
确定这是来自子窗口小部件的src的摘录。我现在在show()
createButton()
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
}
void Widget::createButton()
{
QPushButton *b = new QPushButton(this);
b.show()
}
然后在XmlReader中我调用widget-&gt; createButton()并显示按钮。适合我。
但是,在XmlReader中调用QPushButton b = new QPushButton(widget)和b.show()仍然不会显示按钮。不应该一样吗?
答案 0 :(得分:1)
你的例子太短了。什么样的小部件是'小部件'?你在“小工具”或按钮的任何地方调用show()吗?你在使用widget的布局吗?你是否将按钮添加到布局中?
答案 1 :(得分:0)
你做错了:父母对显示对象没有任何意义。
您必须使用lauot mechanish将按钮放在您需要的位置,或使用setGeometry方法