关于QT 中 QDialog的几点,exec show

emit endSession();

if (rec == QDialog::Rejected)
emit endSession2();

}

endSession()和 endSession2()都是A得成员函数。当删除A时,B也会删除(因为B得parent是A),这个时候exec()会返回 QDialog::Rejected,此时下面的 emit endSession2()还会继续执行,这个时候就会出现端错误了,因为A比B先删除,而此时还要调用A的成员,A都被删除了,还能调用其成员函数?要是能调用就奇了怪了。因此在类A中多了个静态变量thisDeleted,记得在析构A的时候把这个值改变了,这样就不会在调用emit endSession2(),也就不会出现段错了。

3.exec()是一个循环时间函数,哪它什么时候才能返回了?当调用 accept()(返回QDialog::Accepted), reject()(返回QDialog::Rejected),done(int r)(返回r),close()(返回QDialog::Rejected),hide()(返回 QDialog::Rejected),destory()(返回QDialog::Rejected)。还有就是delete 自己的时候也会返回 QDialog::Rejected(destory()就会delete自己)。

4.close()会销毁对象嘛。答案是只有当设置了 setAttribute(WA:closeOnDelelte)是才会删除,如果这个标志没有设置,其作用和hide(),setvisible(false)一样,只会隐藏改对象。

5.当dialog在exec()时候。后台线程同样可以操作界面,如收到每个消息,还可以弹出QDialog。

Qt,QDialog类是用于创建对话框窗口的基类。对话框是一种常见的用户界面元素,用于与用户进行交互,通常用于显示信息、接收输入或进行选择。 QDialog类提供了创建和管理对话框窗口的功能,包括设置窗口标题、大小、位置、样式等。它还提供了与对话框相关的一些常见功能,如按钮、文本框、标签等,以便在对话框显示和接收用户输入。 您可以通过继承QDialog类来创建自定义的对话框窗口,并在其添加自定义的UI组件和逻辑。您可以重写QDialog类的方法,以响应用户的操作或实现特定的行为。 以下是一些常见的QDialog类的用法和功能: 1. 设置对话框标题:使用`setWindowTitle()`方法设置对话框的标题。 2. 设置对话框大小:使用`resize()`方法设置对话框的大小。 3. 添加UI组件:使用布局管理器(如QVBoxLayout、QHBoxLayout等)将各种UI组件(如QPushButton、QLineEdit等)添加到对话框。 4. 响应用户操作:通过连接信号和槽函数,实现对用户操作的响应。例如,当用户点击按钮时,可以执行相应的逻辑。 5. 获取用户输入:使用适当的UI组件(如QLineEdit)来接收用户输入,并在需要时获取其值。 6. 显示对话框:使用`exec()`方法或`show()`方法显示对话框。`exec()`方法会以模态方式显示对话框,阻塞其他窗口的操作,直到对话框关闭。`show()`方法以非模态方式显示对话框,允许用户同时操作其他窗口。 通过使用QDialog类,您可以创建各种类型的对话框,如消息框、输入框、文件选择框等,以满足您的应用程序需求。 希望这些信息能够帮助您理解和使用QDialog类。如需更详细的信息和示例代码,请参考Qt官方文档:https://doc.qt.io/qt-5/qdialog.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值