python 文件对话框 颜色对话框_PyQt5系列教程(9):颜色、字体、打开文件对话框...

上篇我们写到了PyQt5标准对话框的使用,这次我们谈谈打开文件对话框、颜色选择对话框以及字体选择对话框。

本期实现的功能效果如下,大家自己看看动画,这里不做过多的描述。

现在放上代码,通过代码讲解,之前已经学习过的知识点,不做讲解。只讲新的,节约大家时间。

#conding=utf-8

from PyQt5.QtWidgets import QWidget, QApplication, QPushButton, QColorDialog, QFontDialog, QTextEdit, QFileDialog

import sys

class Example(QWidget):

def __init__(self):

super().__init__()

self.initUI()

def initUI(self):

self.setGeometry(300, 300, 500, 300)

self.setWindowTitle('关注微信公众号:学点编程吧--记得好看点')

self.tx = QTextEdit(self)

self.tx.setGeometry(20, 20, 300, 270)

self.bt1 = QPushButton('打开文件',self)

self.bt1.move(350,20)

self.bt2 = QPushButton('选择字体',self)

self.bt2.move(350,70)

self.bt3 = QPushButton('选择颜色',self)

self.bt3.move(350,120)

self.bt1.clicked.connect(self.openfile)

self.bt2.clicked.connect(self.choicefont)

self.bt3.clicked.connect(self.choicecolor)

self.show()

def openfile(self):

fname = QFileDialog.getOpenFileName(self, '打开文件','./')

if fname[0]:

with open(fname[0], 'r',encoding='gb18030',errors='ignore') as f:

self.tx.setText(f.read())

def choicefont(self):

font, ok = QFontDialog.getFont()

if ok:

self.tx.setCurrentFont(font)

def choicecolor(self):

col = QColorDialog.getColor()

if col.isValid():

self.tx.setTextColor(col)

if __name__ == '__main__':

app = QApplication(sys.argv)

ex = Example()

sys.exit(app.exec_())

通过上述代码我们了解到主要是涉及QColorDialog, QFontDialog, QTextEdit, QFileDialog这四个类,其中QColorDialog, QFontDialog, QFileDialog分别负责颜色选择对话框、字体选择对话框、打开文件对话框,QTextEdit则是将刚才提到的类的结果用于呈现。QTextEdit能够呈现富文本。

self.bt1.clicked.connect(self.openfile)

self.bt2.clicked.connect(self.choicefont)

self.bt3.clicked.connect(self.choicecolor)

当我们单击不同的按钮的时候,会调用对应的槽函数。例如:bt1调用openfile这个函数(字面意思:打开文件)

fname = QFileDialog.getOpenFileName(self, '打开文件','./')

我们弹出QFileDialog对话框。 getOpenFileName()方法中的第一个字符串是标题。第二个字符串指定对话框工作目录。默认情况下,文件过滤器设置为所有文件(*),即不限制打开文件的类型。

该函数返回值类型是元组。

如果增加文件过滤,可以改成如下语句:

fname = QFileDialog.getOpenFileName(self, '打开文件','./',("Images (*.png *.xpm *.jpg)"))

效果如下:

if fname[0]:

with open(fname[0], 'r',encoding='gb18030',errors='ignore') as f:

self.tx.setText(f.read())

读取所选择的文件名,并将文本编辑小部件的内容设置为文件读取的内容。这里提一下使用with语句来自动帮我们调用close()方法,避免由于文件读写时产生IOError,导致close()不会调用,需要try ... finally来实现的不便。可以参考微信公众号上《Python小知识:浅谈Python的with语句》

font, ok = QFontDialog.getFont()

这里我们弹出字体对话框。 getFont()方法返回字体名称以及用户点击按钮的状态。如果用户点击Ok,则等于True;否则是假的。

if ok:

self.tx.setCurrentFont(font)

如果用户点击ok键,那么我们在文本编辑小部件中选择的内容会使用我们选择的字体。

col = QColorDialog.getColor()

if col.isValid():

self.tx.setTextColor(col)

这段代码的意思和刚才描述的大致相同,弹出颜色选择的对话框。我们检查颜色是否有效。如果我们点击“取消”按钮,则不会返回有效的颜色。 如果颜色有效,那么我们在文本编辑小部件中选择的内容会使用我们选择的颜色。

总结:

本次我们学习了QColorDialog, QFontDialog, QFileDialog这三个对话框。

ok,今天就到这里,我们下期再谈谈其他的对话框,本身对话框内容就比较多,会多分几期讲解。

如果你想要本次教程中的相关源码,请关注微信公众号:学点编程吧,发送pyqt59

,会自动得到相应的百度网盘下载链接。

在实操中遇到问题?欢迎来讨论。学点编程吧-百度贴吧--计算机程序学习的园地!--学点编程吧,让我们的生活更简单,更高效!能用计算机解决的事情,尽量不要让人解决。如果你在学习当中有任何疑问、学习心得、职业发展等内容欢迎在贴吧中分享,让我​tieba.baidu.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值