qt中如何临时的定义一个Qdialog的实例,然后进行 *** 作

qt中如何临时的定义一个Qdialog的实例,然后进行 *** 作,第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}

}

QDialog *myDlg = new QDialog()

// 直接设置父类为dlg,这样btn就放在了dlg上面

QPushButton *btn = new QPushButton(myDlg)

// 可改变控件的位置和大小

btn->setGeometry(int posx, int posy, int w, int h)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7841732.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存