比如你的get()函数中(大致方法)
MyWidget::get()
{
QDialog *temp_dialog = new QDialog(this) //get()函数中的临时dialog,get函数结束时释放内存
QLineEdit *context = new QLineEdit(temp_dialog)
QPushButton *ok_button = new QPushButton("OK",temp_dialog)
QPushButton *cancel_button = new QPushButton("Cancel",temp_dialog)
///排版
QHBoxLayout *layout= new QHBoxLayout
……
temp_dialog->setLayout(layout)
////按钮事件
connect(ok_button, SIGNAL(clicked()), temp_dialog, SLOT(accept()))
connect(cancel_button, SIGNAL(clicked()), temp_dialog, SLOT(reject()))
//然后执行temp_dialog,界面上就是你自己排版的临时dialog了
if(temp_dialog->exec() == QDialog::Accepted) //确定。响应Enter和ok_button
{
//这里可以取得dialog中各控件的属性,比如QLineEdit:
QString str = context->text() //如果希望str能用于其他函数中,就定义str是成员变量。
}
if(temp_dialog->exec() == QDialog::Rejected) //取消。响应Esc和cancel_button
{……return}
}
QDialog *myDlg = new QDialog()// 直接设置父类为dlg,这样btn就放在了dlg上面
QPushButton *btn = new QPushButton(myDlg)
// 可改变控件的位置和大小
btn->setGeometry(int posx, int posy, int w, int h)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)