Qt将自定义小部件添加到布局中

时间:2014-03-19 02:05:01

标签: c++ qt-creator qt5

我意识到我无法为任何布局添加任何自定义小部件,所以我做了这个例子。这个ex创建了两个按钮 - 在mainWindow中正确位置的常规“works1”,但自定义小部件显示在它之后,在一个单独的窗口中。

我在输出胜利中也有一条消息说

QWindowsWindow :: setGeometry:无法在QWidgetWindow /'QPushButtonClassWindow'上设置几何体75x23 + 520 + 285。产生的几何:116x23 + 520 + 285(帧:8,30,8,8,自定义边距:0,0,0,0,最小尺寸:0x0,最大尺寸:16777215x16777215)。 QWindowsWindow :: setGeometry:无法在QWidgetWindow /'QPushButtonClassWindow'上设置几何体100x100 + 520 + 285。产生的几何:116x100 + 520 + 285(帧:8,30,8,8,自定义边距:0,0,0,0,最小尺寸:0x0,最大尺寸:16777215x16777215)。

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QMainWindow w;

    QWidget *topWidget = new QWidget;
    w.setCentralWidget(topWidget);

    QHBoxLayout *mainLayout = new QHBoxLayout(topWidget);

    QPushButton *myButton = new QPushButton("works1");
    mainLayout->addWidget(myButton);

    MyCustomWidget *newCustom = new MyCustomWidget;
    newCustom->show();
    mainLayout->addWidget(newCustom);

    w.show();

    return a.exec();
}


MyCustomWidget::MyCustomWidget(QWidget *parent) : QWidget(parent)
{
    QPushButton *myButton = new QPushButton("works2");
    myButton->setVisible(1);
    myButton->resize(100, 100);
}


class MyCustomWidget : public QWidget
{
//    Q_OBJECT
public:
    MyCustomWidget(QWidget *parent = 0);

signals:

public slots:

};

0 个答案:

没有答案