eric6中python脚本编辑

时间:2022-05-28 23:12:39

一、eric6中自动生成主体代码的解释

编写槽函数时:

系统自动生成:

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = MainWindow()

    ui.show()

    sys.exit(app.exec_())

语句解释,其中:

有可能这个窗口会被其他文件调用,所以写在if '__name__' == '__main__'里比较好。
app = QApplication(sys.argv)这是每一个QT窗口必须加载的,其中sys.argv参数可以写成[],它接受一个列表。
sys.argv的意思是在命令行下的 -m -a 什么的这些命令的列表集合。

if __name__ == "__main__":

每个python脚本在执行的时候,在内部生成一个属性name。如果这个文件自己运行,属性名称赋值为main,如果外部文件import而来,属性名称则不是main。

app = QtWidgets.QApplication(sys.argv):所有pyqt程序都需要创建一个app,

sys.exit(app.exec_()):app.exec_:exec_是系统自动在系统函数exec后边加一个_,为了与python系统函数区别。

特别注意:eric 自动生成的只是类,需要实例化
C#需要new函数,python用“=”(等号),如:ui = MainWindow()

二、模块未引入错误:name 'QtWidgets' is not defined,解决:from PyQt5 import QtWidgets

三、装饰器用法:@pyqtSignature("")

区别下面槽函数对应那个信号:

    @pyqtSlot()
    def on_pushButton_clicked(self):
        """
        Slot documentation goes here.
        """
        # TODO: not implemented yet
        print (u"*")

        self.label_2.setText("dddddd")

        aa= (self.lineEdit.text()) 
        self.textBrowser.append(aa)

        print (self.textBrowser.toPlainText())

append追加,toPlainText显示到控制台。

四、Eric6中关键字或函数名区分大小写,如下:

        print (self.lineEdit.Text()) ,提示错误:'QLineEdit' object has no attribute 'Text'

        print (self.lineEdit.text()) ,则成功打印lineEdit控件内容。

五、编码问题

乱码解决:
方法一:print u'%s'self.lineEdit.text()
方法二:print unicode(self.lineEdit.text())
方法三:import sys
reload(sys)
sys.setdefaultencoding('utf8')
解码:string.decode('gbk')

六、杂记

下面两句效果完全不一样
ifself.radioButton_1.isChecked():
print("r1")
上句判断结果根据radioButton_1按钮是否被选,如果选中,输出r1,未选中,不输出。
ifself.radioButton_1.isChecked:
print("r1")
上句判断语句常为真,必定输出r1。
使按钮选中语句:self.radioButton_1.setChected(Ttre)
self.lcdNumber.display(value)
QMessageBox类:my_button=QMessageBox.information(self,'通知标题','通知详细内容')
提示:name 'QMessageBox' is not defined
from PyQt5.QtGui import *
from PyQt5.QtCore import *
PyQt5中为我们提供了很多默认信息框QMessageBox,注意为方便使用需要导入模块。这个函数应该在QWidgets里?

#Qt对话框:通知、询问、警告、严重警告、关于、关于Qt
        a=QMessageBox.information(self, '我要退货', '怎么来', )
        b=QMessageBox.question(self, "这是标题", "这是内容")
        c=QMessageBox.warning(self, '标题','内容')
        d=QMessageBox.critical(self, '标题', '内容')
        e=QMessageBox.about(self,'标题', '内容')
        f=QMessageBox.aboutQt(self, '标题')
        print (a, b, c)
        if b==65536:            print('no')
        if b==16384:

            print('ooooooddss')

Qt标准输入对话框:支持4种数据类型:字符串,整形,浮点,下拉条目      

Pyqt5系列(五)-基本界面组件之inputDialog - CSDN博客  http://blog.csdn.net/zhulove86/article/details/52515460

QInputDialog.getText函数输入两种信息,一个是输入内容,一个是窗体执行状态值,用一个元组接收。

c, d=QInputDialog.getInt(self, '框标题', '提示内容', 12, 10, 100)
b, a=QInputDialog.getText(self, '框标题','内容上提示',  QLineEdit.Normal, '输入位置内容')
注意:是getInt,不是getInteger(eric6中不认getInteger方法或属性),有些网上资料有误。
       b, a=QInputDialog.getText(self, '框标题','内容上提示',  QLineEdit.Normal, '输入位置内容')
        print (a)

        print (b)


        my_list=QStringList()
        my_list.append('苹果')
       my_list.append('香蕉')
        a, b=QInputDialog.getItem(self, '标题','提示内容', my_list)

提示:name 'QStringList' is not defined

解决方法: PyQT里没有Qt的QString,name 'List' is not definedQList,QStringList等

 items = ["Spring", "Summer", "Fall", "Winter"]  

        a, b=QInputDialog.getItem(self, '标题','提示内容', items)



因为Qt是C++实现的,所以有List等概念的对象。但对于PyQt,因为python本身支持List等,所以就没有这个对象了。
in PyQt, there is no QString and hence no need for QStringList.



Any Qt API that would normally return a QString, will automatically return a Python string instead. Similarly, any Qt APIs that would normally return a QStringList will return a Python list containing Python strings. And the opposite also applies: any Qt API that would normally accept a QString or QStringList will accept the Python equivalents instead.

问题N:错误提示:the program has terminated with an exit status of 0

F2运行eric6中python脚本,提示:the program has terminated with an exit status of 0



其它Python IDE:Sublime Text

 是一个代码编辑器(Sublime Text 2是收费软件,但可以无限期试用),也是HTML和散文先进的文本编辑器。Sublime Text是由程序员Jon Skinner于2008年1月份所开发出来,它最初被设计为一个具有丰富扩展功能的Vim。

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。