【Python】拖拽文件的实现

【Python】拖拽文件的实现,第1张

为了方便,我们可以将文件直接拖到QLineEdit或者其他控件中来获取文件路径,这样就不需要实现Button,还要一步步打开文件路径,效率比较低。

实现拖拽文件的步骤如下:

首先我们需要先将控件埋历设置成下图的属性(一般不需要设置,默认是打开的)。

然后弯辩搜新建"MyWidget.py"文件,重写相应控件的类。

最后,在QT Designer中新建"Promote"。

输入类灶此名和头文件名,这里的类名和头文件要和之前新建的.py文件名和重写的类名一致。

重新点击控件,右键选择下图的选项,如果其他同类的控件也需要这个功能,也可设置。

完成以上步骤后,重新加载UI即可。

在一个窗体上有多个可编辑控件(比如QLineEdit、QTextEdit等),当哪个控件获得埋猛焦点,哪个控件的背景就高亮用来起提示作用,查了下文档应该用focusInEvent()和focusOutEvent(),在实际过程中,我犯了十分严重的错误,最开始的时候我是这样做的:窗体QWidget的这两个函数,然后再在函数体中把弯神桥QFocusEvent事件传递给窗体上的QLineEdit控件。

既然是要控件得到焦点改变动作,则应该重写该控件的focusInEvent()和focusOutEvent(),即重写QLineEdit类,再重新定瞎晌义这两个处理函数,然后再在主程序中,include我们自己重写的QLineEdit头文件。

老兄,好象你这里出错number = new QLineEdit(this,"number")QLineEdit构造函数的第一个参数是QString类,第二个才是父窗口参数;

str = number ->text.toString()

这句也出错,number->text()才对,而闹纤轮且它就直接返回液信是QString类了,为什么还要转换为String呢?何况没有这个函数啊(toString()在这里是没有的

另外,如果用str = number ->text()也会出错。str是地址,右边是字符串,应竖稿该改为:

*str = number ->text.toString()

你再试试


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

原文地址: https://outofmemory.cn/tougao/12230024.html

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

发表评论

登录后才能评论

评论列表(0条)

保存