一、QDialog功能作用
1.1 模态与非模态对话框
1.2 常用功能
1.3 信号
二、QFontDialog功能作用
2.1 创建
font = QFont()
font.setFamily("宋体")
font.setPointSize(36)
zt = QFontDialog(font,self) #创建QFontDialog对象只需传入font类型参数(字体设置)和父对象即可
zt.open()
2.2 功能作用
三、QColorDialog功能作用
四、文件选择对话框(QFileDialog)
4.1 获取文件和文件夹
4.1.1 设置获取文件功能
QFileDialog类针对文件的名称、资源地址的获取提供了以下几种方法。
#打开一个文件(如果想打开多个直接在getOpenFileName后面加s即可,如果想打开文件的url,用getOpenFileUrl,多个Url则加s),参数分别是:父对象,对话框名称,文件路径,文件类型(如果有多种类型则用 ;; 隔开),初始文件类型,
result = QFileDialog.getOpenFileName(self,"选择一个Python文件","./","All(*.*);;Image(*.png *.jpg);;Python文件(*.py)","Python文件(*.py)")
4.1.2 设置文件保存
#传入的参数和打开文件相同
result = QFileDialog.getSaveFileName(self,"选择一个Python文件","./","All(*.*);;Image(*.png *.jpg);;Python文件(*.py)","Python文件(*.py)")
4.2 选择文件夹
#获取已存在的文件目录
result = QFileDialog.getExistingDirectory(self, "选择一个文件夹", "./")
#获取已存在的文件目录Url
result = QFileDialog.getExistingDirectoryUrl(self, "选择一个文件夹", QUrl("./"))
4.3 其他功能作用
4.4 信号
五、QInputDialog获取用户数据
5.1 常用静态方法
5.1.1 获取整型和浮点型数据
使用QInputDialog的getInt()方法可以获取用户输入的整型数据,该函数的返回值是一个元组(用户最终输入的数据,False/True),其中False/True表示用户是否按下“ok”键。
result = QInputDialog.getInt(self,"窗口名称","输入框名称",666,6,999,step=3)#666是初始值,6是最小值,999是最大值,步长为3
效果:
获取浮点型数据使用getDouble(),传入的参数与getInt()基本类似,仅仅多了一个小数保留位数参数,在最大值后面直接加上即可。
5.1.2 获取文本数据
使用getText()方法。
result = QInputDialog.getText(self,"窗口名称","输入框名称",echo=QLineEdit.Password)#echo接受的是输入形式
效果:
如果想获取多行文本可以用getMultiLineText()result = QInputDialog.getMultiLineText(self, "窗口名称", "输入框名称", "初始文本")
。
效果:
当然,用户可以继续向上图的输入框中继续输入字符,按下ok键后,result变量会接收到一个元组(用户输入的数据,True/False)
5.1.3 获取选择下拉框中的内容
result = QInputDialog.getItem(self, "窗口名称", "输入框名称", ["1","2","3"],1,True)#["1","2","3"],1,True三个参数分别表示可迭代对象,初始项索引,是否可编辑
效果:
最终输入数据可以通过result接受的元组获取。
5.2 功能
5.3 信号
六、QCalenderWidget日期输入控件
6.1 创建控件
cw = QCalenderWidget(self)
6.2 设置日期范围
cw.setMinimum(QDate(1990,1,1)) #设置最小日期是1990年1月1日
cw.setMaximum(QDate(2026,1,1)) #设置最大日期是2026年1月1日
cw.setDateRange(QDate(1990,1,1),QDate(2026,1,1))#设置日期范围是19901月1日至2026年1月1日
6.3 设置日期编辑
6.3.1 设置日期选择可用键盘编辑
cw.setDateEditEnabled(True)
6.3.2 设置选择后确定日期的延迟秒
cw.setDateEditAcceptDelay(3000) #选择日期3s后,选择生效
6.4 获取控件中的日期
cw.monthShown()#展示当前年
cw.yearShown()#展示当前月
cw.selectedDate()#展示所选中的日期(年月日)
6.5 外观格式设置
cw.setNavigationBarVisible(False) #设置导航条不可见
cw.setFirstDayOfWeek(Qt.Sundy) #设置一周中周日为第一天
cw.setGridVisible(True) #设置网格条可见
6.7 文本格式设置
#先创建格式对象
gs = QTextCharFormat()
gs.setFontFamily("黑体")
gs.setFontPointSize(16)
gs.setFontUnderLine(True) #设置字体下划线显示
#把格式对象塞进目标文本方法里,例如这里是改变头部文本格式
cw.setHeadTextFormat(gs)
6.8 选中
cw.setSeclectionMode(QCalenderWidget.NoSelection) #设置无法点击选中
6.9 展示某一目标日期
6.10 信号