Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 单击一个按钮后创建一个按钮_C++_Qt_Parent Child_Qpushbutton - Fatal编程技术网

C++ 单击一个按钮后创建一个按钮

C++ 单击一个按钮后创建一个按钮,c++,qt,parent-child,qpushbutton,C++,Qt,Parent Child,Qpushbutton,我已经创建了一个按钮“+添加”。我想做的是在同一窗口中单击“+添加”按钮后创建另一个按钮“编辑” 如何编辑新“编辑”按钮的文本和位置? 是否可以在另一个窗口中创建另一个按钮? 我试图使用这个方法,但它不起作用,我不明白我应该写什么作为第二个参数 QPushButton::QPushButton(const QString &text, QWidget *parent = nullptr) 您有两个选择: 在应用程序开始时创建所有组件,然后根据需要显示和隐藏它们 只声明引用而不初始化,然

我已经创建了一个按钮“+添加”。我想做的是在同一窗口中单击“+添加”按钮后创建另一个按钮“编辑”

如何编辑新“编辑”按钮的文本和位置? 是否可以在另一个窗口中创建另一个按钮? 我试图使用这个方法,但它不起作用,我不明白我应该写什么作为第二个参数

QPushButton::QPushButton(const QString &text, QWidget *parent = nullptr)
您有两个选择:

  • 在应用程序开始时创建所有组件,然后根据需要显示和隐藏它们

  • 只声明引用而不初始化,然后调用创建函数并将此按钮引用传递给它


  • 最重要的部分是而不是在函数中创建引用。

    这是如何做到的:

    QPushButton *btn = new QPushButton("Click Me", this); //this is parent, give another window/widget address to draw/create it there
    btn->setGeometry(100, 200, 150, 50); //set position, width, height
    connect(btn, SIGNAL(clicked()), this, SLOT(a_slot())); //make it useful
    btn->show();
    btn->setText("Push Me"); //change button text later if you want
    

    当然,可以创建一个新按钮。但是,事先创建按钮并使其不可见,而不是在需要时使其可见,这难道不容易吗?是的,Qt窗口可以在运行时动态构建。第二个参数必须是指向父级的指针。通常,它是按钮所在的窗口部件或窗口。Qt有很好的文档和大量的示例。因此,试图通过反复试验来学习它是痛苦的,也是违反直觉的。