qt中如何临时的定义一个Qdialog的实例,然后进行操作
比如我在函数get()中,要求产生一个dialog,用户输入并确认后我能获得输入内容然后进行其他操作。我知道如果直接继承dialog类是可以的,但是我希望能临时的作一个d...
比如我在函数get()中,要求产生一个dialog,用户输入并确认后我能获得输入内容然后进行其他操作。
我知道如果直接继承dialog类是可以的,但是我希望能临时的作一个dialog并自己排版,因为我的程序中会有大量的使用到弹出对话框而每一次都不同,而且都仅用一次。 展开
我知道如果直接继承dialog类是可以的,但是我希望能临时的作一个dialog并自己排版,因为我的程序中会有大量的使用到弹出对话框而每一次都不同,而且都仅用一次。 展开
1个回答
展开全部
不懂你说的自己做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;}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询