2013-02-18 60 views
0

所以基本上我想做以下事情:当一个按钮被按下时,在大小为Y的点X处创建一个按钮,该按钮具有从textEdit中提取的文本。这是我所做的功能:Qt附加一个动态按钮到窗口

void MainWindow::on_pushButton_released() 
{ 
    QString a = ui->textEdit->toPlainText(); 
    QPushButton* ptr = new QPushButton(a); 
    addWidget(ptr); // I figured I should use this function, thing is I don't know what should call it 
    ptr->show(); 
    ptr->setGeometry(260, 140, 40, 40); 
} 

它的工作原理,但窗口出现在我的桌面上的260,140。我希望它在主窗口中是260,140,无论它在哪里。提前致谢。

回答

1

你应该给QPushButton父母,在这将是谎言。使用以下QPushButton的构造函数:

QPushButton (const QString & text, QWidget * parent = 0); 

代码将是这样的:

void MainWindow::on_pushButton_released() 
{ 
    QString a = ui->textEdit->toPlainText(); 
    QPushButton* ptr = new QPushButton(a, this /* <------------ */); 
    ptr->show(); 
    ptr->setGeometry(260, 140, 40, 40); 
}