QT模态对话框和非模态对话框

本文介绍了QT中模态对话框和非模态对话框的区别,并通过Python的PyQt库展示了如何创建这两种对话框。模态对话框在弹出时会阻止用户操作其他窗口,而非模态对话框允许用户同时操作多个窗口。通过QDialog的exec函数可以创建模态对话框,而非模态对话框则直接显示。示例代码详细展示了如何在实际应用中使用这两种对话框。
摘要由CSDN通过智能技术生成
     模态对话框就是指在子对话框弹出时,焦点被强行集中于该子对话框,子对话框不关闭,用户将无法操作其他的窗口。非模态相反,用户仍然可以操作其他的窗口,包括该子对话框的父对话框。
     如果从线程角度来讲,模态对话框实际上是线程阻塞的,也就是子对话框是一个线程,但是在创建这个子线程之后,父窗口就阻塞了;非模态对话框则不是阻塞型的线程模型,父子线程可以并行运行。
     在Qt中创建模态对话框,主要用到了QDialog的exec函数。
以下代码演示如何用PyQt创建模态对话框和非模态对话框:
#!/usr/bin/env python
#coding=utf-8

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *

class ModelFontProperDlg(QDialog):
    def __init__(self,parent=None):
super(ModelFontProperDlg,self).__init__(parent)
FontStyleLabel = QLabel(u"中文字体:")
self.FontStyleComboBox = QComboBox()
self.FontStyleComboBox.addItems([u"宋体",u"黑体",u"仿宋",u"隶书"])
FontSizeLabel = QLabel(u"字体大小")
self.FontSizeSpinBox = QSpinBox()
self.FontSizeSpinBox.setRange(0,90)
self.FontEffectCheckBox = QCheckBox(u"使用特效")
okButton = QPushButton(u"确定")
cancelButton  =QPushButton(u"取消")

buttonLayout = QHBoxLayout()
buttonLayout.addStretch()
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值