pyqt5按钮打开文件

pyqt5按钮打开文件,第1张

[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_())


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

原文地址:https://54852.com/tougao/11824948.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存