
[python] view plain copy
import sys
import os
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
class Notepad(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
openAction = QAction('Open', self)
openAction.setShortcut('Ctrl+O')
openAction.setStatusTip('Open a file')
openAction.triggered.connect(self.openFile)
closeAction = QAction('Close', self)
closeAction.setShortcut('Ctrl+Q')
closeAction.setStatusTip('Close Notepad')
closeAction.triggered.connect(self.close)
menubar = self.menuBar()
fileMenu = menubar.addMenu('&File')
fileMenu.addAction(openAction)
fileMenu.addAction(closeAction)
self.textEdit = QTextEdit(self)
self.textEdit.setFocus()
self.textEdit.setReadOnly(True)
self.resize(700, 800)
self.setWindowTitle('Notepad')
self.setCentralWidget(self.textEdit)
self.show()
def openFile(self):
filename, _ = QFileDialog.getOpenFileName(self, 'Open File', os.getenv('HOME'))
fh = ''
if QFile.exists(filename):
fh = QFile(filename)
if not fh.open(QFile.ReadOnly):
QtGui.qApp.quit()
data = fh.readAll()
codec = QTextCodec.codecForUtfText(data)
unistr = codec.toUnicode(data)
tmp = ('Notepad: %s' % filename)
self.setWindowTitle(tmp)
self.textEdit.setText(unistr)
def main():
app = QApplication(sys.argv)
notepad = Notepad()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
可能是中文文件损坏,可以重新下载。也有可能是没有把QMainWindow放到主进程的self中。如果不加self,则没有app=QApplication(sys.argv)支持,无法循环窗口。看到的闪退实则是开启一次窗口后退出。1、首先安装PyDev插件或者使用eclipse的在线安装插件功能。2、去下载pyqt4的windows安装程序,.exe文件装好以后会在lib下出现pyqt4的库安装完毕后,在Eclipse的Window->Preference->PyDev->Interpreter-Python下的Libraries添加PyQt安装后在Python文件夹下的路径,如图然后在ForcedBuiltins选项卡中添加PyQt4中的模块,可以在IDLE中使用importPyQt4help(PyQt4)查看有哪些模块,分别添加进去,如图复制这些字符,粘贴的时候有换行符,使用word的替换功能,把换行符^p替换成,,即可然后加入到PyQt4.QAxContainer,PyQt4.Qsci,PyQt4.Qt,PyQt4.QtCore,PyQt4.QtDeclarative,PyQt4.QtDesigner,PyQt4.QtGui,PyQt4.QtHelp,PyQt4.QtMultimedia,PyQt4.QtNetwork,PyQt4.QtOpenGL,PyQt4.QtScript,PyQt4.QtScriptTools,PyQt4.QtSql,PyQt4.QtSvg,PyQt4.QtTest,PyQt4.QtWebKit,PyQt4.QtXml,PyQt4.QtXmlPatterns,PyQt4.phonon,PyQt4.pyqtconfig,PyQt4.uic好了之后是这个样子第一个事例程序'''Createdon2013-6-20@author:Administrator'''importsysfromPyQt4importQtGui,QtCoreclassMyWidget(QtGui.QWidget):def__init__(self,parent=None):QtGui.QWidget.__init__(self,parent)self.setFixedSize(200,120)self.quit=QtGui.QPushButton("Quit",self)self.quit.setGeometry(62,40,75,30)self.quit.setFont(QtGui.QFont("Times",18,QtGui.QFont.Bold))self.connect(self.quit,QtCore.SIGNAL("clicked()"),QtGui.qApp,QtCore.SLOT("quit()"))app=QtGui.QApplication(sys.argv)widget=MyWidget()widget.show()sys.exit(app.exec_())欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)