PyQt5自学 Day18

PyQt5自学 Day18,第1张

QFileDialog()的信号。currentChanged(str)和currentUrlChanged(QUrl)。当前路径发生改变时(只要在文件对话框里进入新的文件夹或者选择新的文件都会触发,不用点ok按钮,是实时的)传递,会把改变以后的文件路径传递给槽函数。directoryEntered(str),打开了某文件夹时(只要在文件对话框里进入新的文件夹,是实时的)触发,会把文件夹的绝对路径传递给槽函数。filterSelected(str),选择了名称过滤器时(只要选择就会触发,实时的),会把名称过滤器的str发送给槽函数。

下述代码可以通过打开文件按钮,将文件内容读入到文本框中;在文本框编辑内容以后,就可以点击保存按钮,将文本框的内容保存到指定的文件中。

def file_input(file_path) :
    with open(file_path,"r") as f :
        for line in f.readlines() :
            le.insertPlainText(str(line))

def file_save(file_path) :
    with open(file_path, "w") as f:
        text = le.toPlainText()
        f.write(text)
        f.close()


le = QTextEdit(window)
le.adjustSize()

dia = QFileDialog(window,"请选择文件","./","ALL(*.*);;Images(*.png *.jpg);;Python文件(*.py)")
dia.resize(200,100)

dia_2 = QFileDialog(window,"请选择文件","./","ALL(*.*);;Images(*.png *.jpg);;Python文件(*.py);;文本文件(*.txt)")
dia_2.setAcceptMode(QFileDialog.AcceptSave)

btn = QPushButton(window)
btn.setText("OpenDialog")
btn.adjustSize()
btn.move(200,400)

btn_2 = QPushButton(window)
btn_2.setText("Save")
btn_2.adjustSize()
btn_2.move(200,450)


btn.clicked.connect(lambda : dia.open())
btn_2.clicked.connect(lambda : dia_2.open())
dia.fileSelected.connect(file_input)
dia_2.fileSelected.connect(file_save)

fileSelected(str),单个文件被选中时触发,将文件的绝对路径传递给槽函数;filesSelected(list),多个文件被选中时触发,传给槽函数的是一个列表,列表里的元素是一个个路径。这个是一定要最终选择才会触发,也就是点击了ok按钮,不是实时的。

QInputDialog()。提供一个简单方便的对话框,用来获得用户输入的单个值,可以是字符串,数字或列表中的项目。可以设置标签告知用户应该输入的内容。

QInputDialog()的静态方法。getInt(),getDouble(),getText(),getMultiLineText(),getItem()。

getInt(parent, 标题字符串,标签字符串,默认参数包括数值数据框里默认显示的数值,最小值最大值和步长,可以不传入)。该方法的返回值是一个元组,第一个元素是用户在数据框里输入的数值,第二个是一个bool,若为True则代表用户点击了ok,若为False则代表用户点击了cancel或直接关闭窗口。

getDouble和getInt的用法基本一样,可以接收float值。可以设置浮点数的默认小数位数。

getText()也差不多,用来接收用户输入的单行文本。getMultiLineText(),获取用户输入的多行文本。

getItem(),获取下拉列表的某个条目。getItem(parent,标题str,标签str,["","",""], int, True),["","",""]里可以设置每个下拉条目的内容,int代表下拉条目默认显示的条目索引值,True代表条目可被编辑。

QInputDialog()的构造函数。在创建时可以传入flags参数,用来修改对话框样式。

选项设置。setOption(QInputDialog.InputDialogOption, on bool = True),可以设置不显示确定和取消按钮(主要用于实时对话框)等等样式。

可以通过setInputMode()来设置对话框是用来接收int还是double还是text,然后后面也可以去具体地设置int最大值最小值等等。就是和静态方法的功能都对应起来了。

界面文本设置。可以设置标签文本,ok按钮的文本和取消按钮的文本。

QInputDialog()的信号。intValueChanged(int)和intValueSelected(int),分别在文本框的int改变和最终点了ok确定了int以后触发,前者适用于实时显示;doubleValueChanged()和doubleValueSelected(),textValueChanged()和textValueSelected()触发条件一样。这几个信号可以把对话框里的内容传递给槽函数,从而让我们活得对话框里用户输入的内容并使用。

QCalendarWidget(),直接继承自QWidget。提供了一个基于每月每日的控件,可以允许选择一个日期并返回。基本结构:

QCalendarWidget()不会被d出来,而是直接显示在父控件里,也可以move。

设置日期范围,设置用户可以选择的最大日期和最小日期。setMinimumDate(QDate(1990,1,1))。传入一个QDate参数。

日期编辑。默认可以被编辑。当控件获取焦点时,可以从键盘直接输入数字,快速选择日期。

日期获取。monthShown(),yearShown()两个可以返回一个int,可以获取当前显示的月份或年份;selectedDate()可以返回一个QDate。

格式外观。设置导航条是否可见。一周的第一天显示是周日还是周一。设置网格是否可见。

文本格式的控制。水平头和垂直头的文本格式。setHeaderTextFormat(QTextCharFormat),里面传一个QTextCharFormat类型的对象。水平头和垂直头也可以分别设置等等。也可以给特定的星期几或日期进行字体设置。

选中。设置某个日期无法被选中,或者可以单选日期。默认是可以单选日期。

常用方法。showToday(),showSelectedDate(),showNextYear(),showPreviousYear(),showNextMonth(),showPreviousMonth(),setCurrentPage(int year, int month),都是顾名思义的。

信号。activated(QDate date),只要用户按下return或enter键或双击日历小部件中的日期,就会发出此信号。会把代表选中日期的QDate传递给槽函数。clicked(QDate),单击有效日期时会触发信号,把代表选中日期的QDate传递给槽函数;currentPageChanged(int year, int month),当前显示的月份更改时会发出该信号,新的一年和新的一月作为参数传递;selectionChanged(),当前选择的日期更改就会触发,实时显示,该信号不传递参数。

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

原文地址:https://54852.com/langs/942548.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-18
下一篇2022-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存