qt中如何临时的定义一个Qdialog的实例,然后进行操作
答案:1 悬赏:50 手机版
解决时间 2021-04-07 05:29
- 提问者网友:一抹荒凉废墟
- 2021-04-07 01:33
qt中如何临时的定义一个Qdialog的实例,然后进行操作
最佳答案
- 五星知识达人网友:鱼忧
- 2021-04-07 01:53
不懂你说的自己做dialog是什么意思。但是要完成你说的功能,用QDialog就行。
比如你的get()函数中(大致方法)
MyWidget::get()
{
QDialog *temp_dialog = new QDialog(this); //get()函数中的临时dialog,get函数结束时释放内存
//下面是定义临时dialog中的控件,自己添加控件并排版
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;}
}
比如你的get()函数中(大致方法)
MyWidget::get()
{
QDialog *temp_dialog = new QDialog(this); //get()函数中的临时dialog,get函数结束时释放内存
//下面是定义临时dialog中的控件,自己添加控件并排版
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;}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯